Laravel 5.2.23の新機能

現在、LaravelにはすでにGitHubに911メンバーがおり、その多くは積極的に新しい機能を追加しています。 Laravelバージョン5.2.23の新機能を待ちましょう。これはすでに間もなく公開されます。
画像

新しいin_array検証ルール


laravelの検証ルールは驚くべきものです。私は個人的にいくつかのプロジェクトのコードをいくつかの検証行に置き換えました。
5.2.23では、新しいルールが追加されました。 配列要素の値が別の配列に含まれていることを確認するのに役立ちます。

Validator::make( [ 'devices' => [['user_id' => 1], ['user_id' => 2]], 'users' => [['id' => 1, ['id' => 2]]] ], ['devices.*.user_id' => 'in_array:users.*.id'] ); 

これにより、デバイス上のすべてのuser_id値がusers配列のidキーと一致することが確認されます。

Arr :: first()&Arr :: last()コールバックはオプションになりました


以前は、2番目のパラメーターとしてコールバックが必要でしたが、現在はありません:

 $array = [100, 200, 300]; //      100 Arr::first($array); /**     **/ array_first($array); //      300 Arr::last($array); /**    **/ array_last($array); //   ( )     200 Arr::first($array, function ($key, $value) { return $value >= 150; }); 

一度に複数の仲介者(ミドルウェア)を指定する


コントローラーでは、中間を指定するときに、1行で一度に複数を指定できます。

 $this->middleware(['auth', 'subscribed'], ['only' => ['getCandy']]); 

新しいBlade php 、@endphp、およびunsetディレクティブ


phpディレクティブを使用すると、PHP式を次のように記述できます。

 @php($count = 1) @php(++ $count) @php $now = new DateTime(); $environment = isset($env) ? $env : "testing"; @enphp 

unsetは、unset()の単なるラッパーです。

 @unset($count) 

基本的なBladeディレクティブをオーバーライドする機能


バージョン5.2.23より前は、Bladeを拡張して基本的なディレクティブを再定義することは不可能でしたが、現在では、拡張機能を使用して任意のディレクティブをオーバーライドできます。

SparkPostの新しいメールドライバー




スケジュールされたタスクを記述するための新しいmonthlyOn()メソッド


 $schedule->call(function () { DB::table('shopping_list')->delete(); })->monthlyOn(4, '12:00'); 

新しいアプリ()-> isLocale()メソッド


 //   if (app()->getLocale() == 'en') //   if (app()->isLocale('en')) 

クエリビルダーを使用してMySQL 5.7でJSONフィールドを取得する


MySQL 5.7では、新しい列タイプ-JSONが登場しましたが、Laravel 5.2.23では、これらのフィールドを通常どおり自由に選択できます。

JSON型の名前列を持つユーザーテーブルがあり、フィールドに次の型の値が含まれているとします。

 {"en":"name","ar":"nom"} 

今、あなたは同様の条件を作ることができます

 User::where('name->en', 'name')->get(); //    JSON     `->`. User::where('contacts->phone->home', 1234); 

seeElement()およびdontSeeElement()をテストするための新しいメソッド


ページにそのような要素がある場合

 <image width="100" height="50"> 

このテストを使用して、その存在を確認できます。

 $this->seeElement('image', ['width' => 100, 'height' => 50]); 

または、クラスビデオで要素が存在しないことを確認します

 $this->dontSeeElement('image', ['class' => 'video']); 

あまり知られていないパン


すでにこれができることを知っていましたか?

 User::whereNameAndEmail('jon', 'jon@theWall.com')->first(); User::whereNameAndEmailOrPhone('jon', 'jon@theWall.com', '123321')->first(); DB::table('users')->whereEmailOrUsername('mail@mail.com', 'themsaid')->first(); 

Source: https://habr.com/ru/post/J278935/


All Articles