この記事の公開時点で、Laravel には Github に 911 人の寄稿者がおり、そのうちの何人かは毎日フレームワークに更新を追加するのに協力しています。 。以下は、Laravel 5.2.23に追加される新機能のいくつかの概要です。
最近、私はプロジェクト内の多くのコードをほんの数行のコードに置き換えました。キーの値が別の関連キーに含まれているかどうかを確認するのに役立つ新しいルールが 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 にあることを確認します。
以前のバージョンでは、コールバック関数は 2 番目のパラメーターとして必要でしたが、次のようになります。 5.2.23 のオプションのパラメータ。
$array = [100, 200, 300];// (NEW) This will return 100Arr::first($array); /** same for **/ array_first($array);// (NEW) This will return 300Arr::last($array); /** same for **/ array_last($array);// (You still can) do this and return 200Arr::first($array, function ($key, $value) { return $value >= 150;});
コントローラーにミドルウェアを追加するときに、1 つのステートメントで複数のミドルウェアを登録できるようになりました。
$this->middleware(['auth', 'subscribed'], ['only' => ['getCandy']]);
@php コマンドを使用すると、次のような PHP ステートメントを記述できます。 >
@php($count = 1)@php(++ $count)
@php $now = new DateTime(); $environment = isset($env) ? $env : "testing";@enphp
5. Blade コア命令を書き換える機能
@unset($count)
6. Blade ディレクティブのコンパイルを回避する
7. SparkPost の新しいメール ドライバー
// output: <?php continue; ?>@continue// output: @continue@@continue
$schedule->call(function () { DB::table('shopping_list')->delete();})->monthlyOn(4, '12:00');
// Instead of thisif (app()->getLocale() == 'en')// You can do thatif (app()->isLocale('en'))
users テーブルに次の値を持つ JSON 型名列があるとします。
次の構文を使用して値をクエリできます:
{"en":"name","ar":"nom"}
11. テスト ヘルパー メソッド seeElement() および dontSeeElement()
User::where('name->en', 'name')->get();// You may dive deep in the JSON string using the `->` operator.User::where('contacts->phone->home', 1234);
次のテスト メソッドを使用できます:
<image width="100" height="50">
12. 隠し特典 #1
$this->seeElement('image', ['width' => 100, 'height' => 50]);$this->dontSeeElement('image', ['class' => 'video']);
13. 隠れたメリット #2
User::whereNameAndEmail('jon', 'jon@theWall.com')->first();User::whereNameAndEmailOrPhone('jon', 'jon@theWall.com', '123321')->first();DB::table('users')->whereEmailOrUsername('mail@mail.com', 'themsaid')->first();
// Instead of this:if(!$item){ abort(404);}// You can do that:abort_unless($item);// You may also have something like this:abort_if($item->is_hidden);