Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.

15 St Margarets, NY 10033
(+381) 11 123 4567



Laravel 8.65 Released | Laravel News

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:

1// Displays: "Voice Recording Stored"

2echo Str::headline(

3 class_basename(AppEventsVoiceRecordingStored::class)



6// Displays: "Using Laravel With Redis"

7echo Str::studlyWords("using-laravel-with-redis");

Gate Policy Callback

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

1Gate::inspect([PostPolicy::class, 'update'], $post)->authorize();


3Gate::check([PostPolicy:class, 'update'], $post);

4Gate::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:

1// config/auth.php

2return [

3 '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:

1# Create a unit test file

2php artisan make:model Product --test

3# Create a pest file

4php 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:

1$request = Request::create('/', 'GET', [

2 'users' => [1, 2, 3],

3 'roles' => [4, 5, 6],

4 'email' => 'test@example.com'



7// returns [4, 5, 6]


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:

1public function rules()


3 return [

4 'date' => 'date_format:Y-m-d,m-d',

5 ];


PostgreSQL “update from” Method

Dries Vints contributed an updateFrom method for the PostgreSQL grammar:


2update "users" set "email" = ?, "name" = ? from "orders"

3where "users"."id" = ? and "users"."id" = "orders"."user_id"



6 ->from('users')

7 ->join('orders', 'users.id', '=', 'orders.user_id')

8 ->where('users.id', '=', 1)

9 ->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:

1$response = TestResponse::fromBaseResponse(

2 (new Response('', 302))

3 ->withHeaders(['Location' => 'https://url.com'])



6$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.

Credit: Source link

Previous Next
Test Caption
Test Description goes like this