请使用此查询帮助我。
SELECT d.date, d.id, d.message, u.username
FROM dialogs d JOIN users u ON d.user_id = u.id
AND d.is_deleted = 0
WHERE d.id > ? ORDER BY d.id DESC LIMIT 30
有作者的消息。现在我使用DB :: select进行此查询,但需要类似:
Dialog::all(['date', 'id', 'message'])
->where('is_deleted', '=', 0)
->with('user')
->idDescending()
->take(30)
->get();
Laravel 4.2
小小的抱怨。仅当所选字段列表包含本地和外键时才有效。
Dialog::with('user')
->where('is_deleted', '=', 0)
->orderBy('id', 'desc')
->take(30)
->get(['date', 'id', 'message', 'user_id']);
public function user()
{
return $this->belongsTo('User')->select(['username', 'id']);
}
如果没有密钥,则用户为空。
答案 0 :(得分:0)
如果你的关系设置正确,这应该是好的:
$rows = Dialog::with('user')
->where('is_deleted', '=', 0)
->orderBy('id', 'desc')
->take(30)
->get(['date', 'id', 'message'])
您应该可以使用
访问该用户 foreach($rows as $row){
$row->user->username;
}