在Laravel 4/5中,如何在基於關係連接到該表的字段中排序表結果?Laravel 4/5,國外訂單
我的情況:
我有users
,只有存儲e-mail
和password
領域。但是我有一個叫details
另一個表存儲的name
,birthday
,等...
我怎樣才能獲得通過details.name
的users
表結果排序?
P.S:由於用戶是有其他國家的關係,並有許多項目的中央臺,我不能只是做一個反向搜索像Details::...
在Laravel 4/5中,如何在基於關係連接到該表的字段中排序表結果?Laravel 4/5,國外訂單
我的情況:
我有users
,只有存儲e-mail
和password
領域。但是我有一個叫details
另一個表存儲的name
,birthday
,等...
我怎樣才能獲得通過details.name
的users
表結果排序?
P.S:由於用戶是有其他國家的關係,並有許多項目的中央臺,我不能只是做一個反向搜索像Details::...
我會建議使用加入。 (型號應爲單數形式命名;用戶;詳細信息)
$users = User::join('details', 'users.id', '=', 'details.user_id') //'details' and 'users' is the table name; not the model name
->orderBy('details.name', 'asc')
->get();
如果您使用此查詢多次,你可以把它保存在一個示範範圍。
class User extends \Eloquent {
public function scopeUserDetails($query) {
return $query->join('details', 'users.id', '=', 'details.user_id')
}
}
然後從您的控制器調用查詢。
$users = User::userDetails()->orderBy('details.name', 'asc')->get();
感謝您的答案,但我已經使用這種方式,這是非常糟糕的,因爲可以在訂購具有相同名稱,如id等列時發生衝突。我正在尋找更多的「ORM」方式.. – insign 2014-11-26 02:17:27
您是否在使用Eloquent?當前獲取記錄的請求是什麼樣的? – 2014-11-23 17:29:25
你必須「加入」細節表,沒有別的辦法。 – 2014-11-23 19:09:00