[英]Laravel using WHERE in eloquent ORM
我遇到過這個
$user = User::whereConfirmationCode($confirmation_code)->first();
在Laravels雄辯的ORM中,你可以在上面的where語句中附加表格行名稱嗎?
在我看到這之前我會寫的
例如: $user = User::where('confirmation_code', '=', $confirmation_code)->first();
謝謝
'是的,你可以在哪里建立動態。 它在簡單的where語句中進行解析。 你也可以像這樣構建魔術查詢:
$user = User::whereConfirmationCodeAndIdOrRole(12345, 5, 'admin')->first();
它將轉變為:
$user = User::where('confirmation_code', '=', 123456, 'and')->where('id', '=', 5, 'or')->where('role', '=', 'admin')->first();
我可能錯了。 我沒有意識到魔術查詢構建器的設置。
這是一個自定義查詢范圍 。
IE:具有查詢范圍的帖子模型,用於獲取“status”=已發布的所有帖子。
class Post extends Eloquent {
/**
* Get all posts with 'status' published
*
* @param Illuminate\Database\Query\Builder $query
* @return Builder $query
*/
public function scopePublished(Builder $query)
{
return $query->where('status', 'published');
}
}
然后使用它:
Post::published()->first();
注意參數可以通過在查詢構建器之后將它們作為參數傳遞給查詢范圍來傳遞到自定義范圍。
public function scopeStatus(Builder $query, $status)
{
return $query->where('status', $status);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.