Kohana Jelly:如何从Jelly系列中快速创建阵列?

时间:2011-02-20 19:28:55

标签: arrays collections kohana jelly

假设你有一个模特人物。每个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');

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

$friends = $person->friends->as_array('id', 'name');