假设你有一个模范人物。每个Person对象可以有许多朋友(Field_HasMany)。
如果你想为一个给定的人的朋友获取一个简单的姓名/id对数组,那么像这样获取朋友会更快/更好吗:
$friends = $person->friends;,然后使用foreach循环从该对象创建数组。
或
执行select操作,如下所示:
$friends = Jelly::select('friend')
->join('people')
->on('person.id','=','friends_people.person_id')
->where('person_id','=',$person->id)
->execute()
->as_array('name', 'id');发布于 2011-02-21 16:29:38
基本上,Jelly所做的是在您请求$person的朋友时构建正确的查询(类似于您的自定义查询)
要在数组中获得好友,您可以执行与自定义查询完全相同的操作:
$friends = $person->friends->as_array('id', 'name');发布于 2011-02-21 11:02:51
问题是其他的..。因为一个(注一)人可以有许多(许多)朋友,所以关系不是多对多是一对多:另一个人认为,如果你真的需要多对多关系,你需要第三个表来粘合。在这种情况下,如果你有一对多的关系,“一个人有很多朋友”。您可以执行Person-> friends ->findAll()来获取给定person ID的所有好友:)
https://stackoverflow.com/questions/5059437
复制相似问题