假设你有一个模特人物。每个Person对象都可以有很多Friends(Field_HasMany)。
如果你想为给定的朋友的朋友获得一个简单的名字/身份对数组,那么让朋友更喜欢这样更快/更好:
$friends = $person->friends;
然后使用foreach循环从该对象创建一个数组
OR
做一个选择,如下:
$friends = Jelly::select('friend')
->join('people')
->on('person.id','=','friends_people.person_id')
->where('person_id','=',$person->id)
->execute()
->as_array('name', 'id');
答案 0 :(得分:0)
问题是其他问题......因为一个人(注意一个人)可以有很多(很多)朋友 所以这种关系并不多,一对多:S 其他人认为,如果你真的需要多对多的关系,你需要第三个表来粘合。 在这种情况下,如果你有一对多关系“一个人有很多朋友”。 你可以做 Person-> friends-> findAll()来获取给定人ID的所有朋友:)
答案 1 :(得分:0)
当您请求$ person的朋友(类似于您的自定义查询)时,Jelly所做的基本上是构建正确的查询
要获取数组中的朋友,您可以执行与自定义查询完全相同的操作:
$friends = $person->friends->as_array('id', 'name');