簡體   English   中英

僅從聯接表中獲取選定的列

[英]get only the selected column from the join table

我在下面有此參考代碼,首先是第1行

$aa = users_details::select(array('id', 'user_id'))->where('id', '=', $request->id)->first(); //first line
$bb = User::select(array('user_id'))->where('user_id', '=', $aa->id)->with('user_details')->first(); //second line

第一行返回正確的13,而第二行返回“ null”,這不應該,因為實際上有一條記錄的user_id為“ 13”。 有什么想法,請幫忙嗎?

而且還有一種方法我可以只選擇此聯接表中的選定列(雄辯關系hasOne)

$bb = User::select(array('user_id'))->where('user_id', '=', $aa->id)->with('user_details')->first();

我不知道

選擇(數組('user_id'))

是從聯接表中僅選擇選定列的正確選擇。 有什么想法,請幫忙嗎?

第一個問題:

$bb = User::select(array('user_id'))->where('user_id', '=', $aa->id)->with('user_details')->first();

用戶表(或User模型所指向的任何地方)中是否有user_id列? 您在用戶模型中是否有user_details方法?

第二個問題:

您可以選擇

User::select('user_id', 'username', 'sex')

如果聯接表中的列名相同,則可以選擇

User::select('users.user_id as a', 'users.username', 'users.sex', 'user_details.user_id as b')

更新:

當兩者都一起加入時,如何從“ user_details”中僅選擇選定的列?

User::select('users.user_id as user_id', 'users.username', 'users.sex', 'user_details.user_id as user_details_id')->join('user_details','user_details.user_id','=', 'users.id' )->where('users.id', '=', $aa->id)->first();

要從聯接表中選擇列,只需在列名前加上表名,例如user_details.user_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM