News

Laravel 8.65 Released

Published
Laravel 8.65 Released image

Release updates

Never miss a Laravel release

Get an email whenever a new Laravel release lands.

The Laravel team released 8.65 with the ability to generate test files during make commands, a string headline method, getting a subset of data as a collection from the request instance, and the latest changes in the v8.x branch.

String Headline Method

Steve Bauman contributed a headline() method to Str and Stringable, which converts a string into Studly Words:

// Displays: "Voice Recording Stored"
echo Str::headline(
class_basename(\App\Events\VoiceRecordingStored::class)
);
 
// Displays: "Using Laravel With Redis"
echo Str::studlyWords("using-laravel-with-redis");

Gate Policy Callback

Lennart Carstens-Behrens contributed the ability to pass policy callbacks to a gate:

Gate::inspect([PostPolicy::class, 'update'], $post)->authorize();
Gate::inspect(InvokablePolicy::class)->authorize();
Gate::check([PostPolicy:class, 'update'], $post);
Gate::any([PostPolicy::class, ['update', 'edit']], $post);

If you'd like to dig deeper, check out Pull Request #39185.

Configurable "Remember Me" Cookie Duration

James Freeman contributed a configurable duration for the "remember me" cookie, configurable via the config/auth.php file:

// config/auth.php
return [
'remember' => now()->addDays(7)->diffInMinutes(),
];

The default expiration is five years, which will continue to be the case if you don't set a configuration value.

Generate Tests With Various Artisan Commands

Luke Downing contributed the ability to use the --test or --pest flag to generate a test during artisan "make" commands:

# Create a unit test file
php artisan make:model Product --test
# Create a pest file
php artisan make:model Product --pest

Here's a list of commands that now have these flags:

  • make:command
  • make:job
  • make:listener
  • make:mail
  • make:model
  • make:notification
  • make:controller
  • make:middleware

Subset of Data from a Request Collection

Iraldo Arévalo Delfín contributed the ability to get a subset of input data from the request's collect() function:

$request = Request::create('/', 'GET', [
'users' => [1, 2, 3],
'roles' => [4, 5, 6],
'email' => 'test@example.com'
]);
 
// returns [4, 5, 6]
$request->collect(['roles'])->all();

Validate Multiple Date Formats

Steve Bauman contributed the ability to pass multiple date formats to the date_format validation rule. The rule validates that the input must match one of the possible formats:

public function rules()
{
return [
'date' => 'date_format:Y-m-d,m-d',
];
}

PostgreSQL "update from" Method

Dries Vints contributed an updateFrom method for the PostgreSQL grammar:

/*
update "users" set "email" = ?, "name" = ? from "orders"
where "users"."id" = ? and "users"."id" = "orders"."user_id"
*/
$builder
->from('users')
->join('orders', 'users.id', '=', 'orders.user_id')
->where('users.id', '=', 1)
->updateFrom(['email' => 'foo', 'name' => 'bar']);

For further details, I'd encourage you to check out Pull Request #39151.

Assert Redirect Contains Test Method

Fredrik contriubted the assertRedirectContains() method on a TestResponse instance:

$response = TestResponse::fromBaseResponse(
(new Response('', 302))
->withHeaders(['Location' => 'https://url.com'])
);
 
$response->assertRedirectContains('url.com'); // true

Release Notes

You can see the complete list of new features and updates below and the diff between 8.64.0 and 8.65.0 on GitHub.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
Image Dominant Color and HEIC Support in Laravel 13.24 image

Image Dominant Color and HEIC Support in Laravel 13.24

Read article
Official Laravel Zed Extension: LSP for PHP & Blade image

Official Laravel Zed Extension: LSP for PHP & Blade

Read article
Laravel Head: Manage Meta Tags, Open Graph, and JSON-LD image

Laravel Head: Manage Meta Tags, Open Graph, and JSON-LD

Read article
PhpStorm 2026.2 Released image

PhpStorm 2026.2 Released

Read article
Laravel Doctor: Diagnose Your App With One Artisan Command image

Laravel Doctor: Diagnose Your App With One Artisan Command

Read article
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article