0

假设您有一个模型 Person。每个 Person 对象可以有许多朋友 (Field_HasMany)。

如果您想为给定的 Person 的朋友获取一个简单的名称/ID 对数组,那么像这样获取 Friends 是否更快/更好:

$friends = $person->friends;

然后使用 foreach 循环从该对象创建一个数组

或者

做一个选择,像这样:

$friends = Jelly::select('friend')
->join('people')
->on('person.id','=','friends_people.person_id')
->where('person_id','=',$person->id)
->execute()  
->as_array('name', 'id');
4

2 回答 2

0

问题是其他的......因为一个(注意一个)人可以有很多(很多)朋友所以关系不是多对多是一对多:S其他认为如果你真的需要多对多关系你需要第三张桌子粘上。在这种情况下,如果您有一对多的关系“一个人有很多朋友”。您可以执行 Person->friends->findAll() 来获取给定人员 ID 的所有朋友 :)

于 2011-02-21T03:02:50.920 回答
0

基本上,Jelly 所做的是在您请求 $person 的朋友时构建正确的查询(类似于您的自定义查询)

要在数组中获取好友,您可以执行与自定义查询完全相同的操作:

$friends = $person->friends->as_array('id', 'name');
于 2011-02-21T08:29:37.743 回答