繁体   English   中英

Laravel 4:如何在多对多关系中获取选定/特定列?

[英]Laravel 4 : How to get selected/specific columns in a many to many relationship?

我希望获得与某个对话相关的所有用户。 数据透视表具有user_idconversation_id列。 user_idconversation_id引用user和conversations表上的id列。

所以我做了 :

Conversations::find($conv_id)->users()

这没关系,但它返回相关用户的所有细节。 根据上面的代码,我如何只返回用户的某些列,如idname

Ps此外,我知道我可以通过为数据透视表创建一个模态来实现这一点,但这似乎是一种矫枉过正。 为数据透视表创建模态是一个好习惯吗?

我试过了

Conversations::select('id','name')->find($conv_id)->users()->get()->toArray();

但结果仍然相同。

我也试过了

Conversations::find($conv_id)->users()->get(array('id','name'))->toArray();

但它给出了错误:

SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in field list is ambiguous.. 

感谢您的时间。

当你从两个包含一个名为id的字段的表中选择数据时,为什么你Column 'id' in field list is ambiguous...收到Column 'id' in field list is ambiguous...错误。

如果再次尝试相同的查询,但确定哪些id您希望使用点符号的形式来选择table.field它应该工作。

Conversations::find($conv_id)->users()->get(array('users.id','name'))->toArray();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM