前言
眾所周知Laravel是一套簡潔、優雅的PHP Web開發框架(PHP Web Framework)。下面這篇文章主要給大家總結了一些Laravel不經常用的小技巧,下面話不多說了,來一起看看詳細的介紹吧
1. 更新父表的timestamps
如果你想在更新關聯表的同時,更新父表的timestamps,你只需要在關聯表的model中添加touches屬性。
比如我們有Post和Comment兩個關聯模型
?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Comment extends Model
{
/**
* 要更新的所有關聯表
*
* @var array
*/
protected $touches = ['post'];
/**
* Get the post that the comment belongs to.
*/
public function post()
{
return $this->belongsTo('App\Post');
}
}
2. 懶加載指定字段
$posts = App\Post::with('comment:id,name')->get();
3. 跳轉指定控制器并附帶參數
return redirect()->action('SomeController@method', ['param' => $value]);
4. 關聯時使用withDefault()
在調用關聯時,如果另一個模型不存在,系統會拋出一個致命錯誤,例如 $comment->post->title,那么我們就需要使用withDefault()
...
public function post()
{
return $this->belongsTo(App\Post::class)->withDefault();
}
5. 兩層循環中使用$loop
在blade的foreach中,如果你想獲取外層循環的變量
@foreach ($users as $user)
@foreach ($user->posts as $post)
@if ($loop->parent->first)
This is first iteration of the parent loop.
@endif
@endforeach
@endforeach
6. 瀏覽郵件而不發送
如果你使用的是mailables來發送郵件,你可以只展示而不發送郵件
Route::get('/mailable', function () {
$invoice = App\Invoice::find(1);
return new App\Mail\InvoicePaid($invoice);
});
7. 通過關聯查詢記錄
在hasMany關聯關系中,你可以查詢出關聯記錄必須大于5的記錄
$posts = Post::has('comment', '>', 5)->get();
8. 軟刪除
查看包含軟刪除的記錄
$posts = Post::withTrashed()->get();
查看僅被軟刪除的記錄
$posts = Post::onlyTrashed()->get();
恢復軟刪除的模型
Post::withTrashed()->restore();
9. Eloquent時間方法
$posts = Post::whereDate('created_at', '2018-01-31')->get();
$posts = Post::whereMonth('created_at', '12')->get();
$posts = Post::whereDay('created_at', '31')->get();
$posts = Post::whereYear('created_at', date('Y'))->get();
$posts = Post::whereTime('created_at', '=', '14:13:58')->get();
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- PHP框架Laravel的小技巧兩則
- Laravel框架之blade模板新手入門教程及小技巧
- Laravel框架路由配置總結、設置技巧大全
- laravel技巧之查詢構造器Query Builder疊加鏈式調用的方法
- 詳談PHP程序Laravel 5框架的優化技巧