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 查詢一樣。