2016-02-09 41 views
0

如何通過列值獲取記錄。例如,我想要列「foo」具有值「bar」的數據集。Laravel:按列值檢索記錄

我沒有將「foo」標記爲唯一密鑰,但如果必要的話,我可以這樣做。

我試圖

$order = Order::where('foo', '=', $bar)->get(); 

,但我認爲還給不只是一個數據集,但數據集的數組,對不對?

該文檔非常差,我找不到與谷歌適當的答案。這是一個簡單的任務,我不知道爲什麼它如此複雜。

+0

推倒它可以是對象,因爲可以返回多於一個原始的陣列。你期待什麼? –

回答

1

你在這裏。如果你想第一個單獨返回。使用->get()如果你想讓它可重複使用,那麼你應該做的,這將始終返回arrayable對象

$order = Order::where('foo', $bar)->first(); 

。在Order.php模型(假設它是一個Eloquent模型)。現在

public static function scopeFoo($query, $value) { 
    return $query->where('foo', $value); 
} 

,你可以在你的控制器做這個或任何

Order::foo($bar)->first() 
+0

完美,謝謝! – humpdi

+0

hm它告訴我:非靜態方法App \ Order :: getByOrderIdent()不應被靜態調用,假設$ this來自不兼容的上下文 – humpdi

+1

添加靜態函數 – humpdi