class UserController extends Controller
{
public function index()
{
$columns = ['id', 'name', 'email', 'created_at'];
$users = User::addSelect([
'last_post_title' => Post::select(['title'])
->whereColumn('user_id', 'users.id')
->where('status', Post::STATUS_NORMAL)
->orderByDesc('created_at')
->limit(1)
])->orderByDesc('id')->paginate(20, $columns);
return view('user.index', ['users' => $users]);
}
}
addSelect 方法可用於新增一個查詢欄位到已存在的查詢例項,我們通過傳遞一個陣列 —— 陣列鍵是返回的查詢欄位名,即 SQL 語句中的 last_post_title,陣列值是對應的子查詢邏輯,注意外來鍵關聯需要通過 whereColumn 方法設定,其他和正常 Eloquent 查詢一樣。
本作品採用《CC 協議》,轉載必須註明作者和本文連結