2015年11月16日 星期一

[Laravel] Laravel 5.2 更新內容

隱晦模型綁定(Implicit model binding)

隱晦模型綁定是一個新的特性,他將會自動綁訂一個模型到路由,以下是範例程式碼:

Route::get('/api/posts/{post}', function(Post $post) {
    return $post;
});




上述程式碼將會在背後直接呼叫 Post::findOrFail($post) 並且將它注入到 $post 這個變數。對於有經驗的Laravel開發者,這個功能就很像是已經存在的 路由模型綁定 ,但現在移除了手動綁定它。


排程任務附加額外輸出(Appending output from scheduled tasks)

Laravel Scheduler 將可以附加來自於任務的輸出給檔案。



1
2
3
$schedule->command('emails:send')
    ->hourly()
    ->appendOutputTo($filePath);
先前 Laravel 有包含sendOutputTo選項,它可以寫入最近的結果但不能附加。

Laravel 5.2 表單陣列驗證(Laravel 5.2 Form Array Validation)

這個特性 Laravel-news作者有寫一份完整教學,有興趣的人可以去看看。
假設你有個表單,並且有個 input 輸入區域(當然,他是陣列的形式):



1
2
3
4
5
6
7
8
<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 要加入驗證規則是必須跑迴圈並且個別加入相對應的驗證規則。已經不必要再做這些了,因為它已經 “Laravel化(Laravelized)”了:



1
2
3
4
$v = Validator::make($request->all(), [
  'person.*.id' => 'exists:users.id',
  'person.*.name' => 'required:string',
]);

Collections 通配符(Collections Wildcards)

當我們使用一個 collection 並且想要拉出資料,你現在可以使用 * 這個通配符:



1
$posts->pluck(‘posts.*.title’);
這將會返回所有在 posts 裡面的 title。

資料庫 Session 驅動(Database Session Driver)

資料庫的 session 驅動目前包含了 user_id
ip_address,所以你可以簡單的清除掉包含這個使用者的所有 sessions。

MySQL JSON 欄位支援(MySQL JSON Column Types)


MySQL 5.7.8 加入了支援原生的 JSON 資料類別。Laravel 5.2現在也加入了支援這個欄位類別了。

沒有留言:

張貼留言

Google Analytics初學者入門簡介