在學習 Laravel 階段,一定會天天看 Laravel Documentation,但是有很多小技巧是在文件內沒寫出來的,網路上找到這篇 50 Laravel Tricks in 50 Minutes,寫了 50 個 Laravel 小技巧,包含了 IoC Container, Blade, Eloquent, Middleware, Routing, Commands, Queues, Events, Caching 等模組。
當然作者最後不只介紹了 50 個小技巧,另外也展示了 Laravel 5.2 的新功能,像是可以在 Routing 內寫 Modle Binding,所以非常推薦大家看這 Slides。底下列出 Laravel 5.2 新功能
在 Routing 內可以直接 binding Model
Route::get('/api/posts/{post}', function(Post $post) { return $post; });
scheduled tasks 支援 log 連續寫入檔案
$schedule->command('emails:send') ->hourly() ->appendOutputTo($filePath);
支援 Array 驗證
html 寫法如下
<p> <input type="text" name="person[1][id]"> <input type="text" name="person[1][name]"> </p> <p> <input type="text" name="person[2][id]"> <input type="text" name="person[2][name]"> </p>
在 Laravel 5.1 要用 loop 方式驗證,但是 5.2 可以改寫如下
$v = Validator::make($request->all(), [ 'person.*.id' => 'exists:users.id', 'person.*.name' => 'required:string', ]);
Collection 支援 Wildcards 功能
要讀取 posts 底下所有的 Title 可以寫成如下
$posts->pluck('posts.*.title');
Database Session Driver 多支援兩個欄位
資料庫 Session Driver 多支援 user_id
及 ip_address
,這樣就可以很快速的清除單一帳號的 Session。
MySQL 支援 JSON Type
MySQL 5.7.8 之後支援 JSON Type,現在 Laravel 5.2 也會開始支援 JSON Type。