0

モデルの人物がいるとします。各 Person オブジェクトは、多くの友達を持つことができます (Field_HasMany)。

特定の人の友達の名前/IDペアの単純な配列を取得したい場合は、次のように友達を取得する方が速い/良いですか?

$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

基本的に、Jelly が行うことは、$person の友達をリクエストするときに正しいクエリを作成することです (これはカスタム クエリに似ています)。

配列で友達を取得するには、カスタム クエリで行っているのとまったく同じことを行うことができます。

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

問題はその他です... 1人(1つに注意)の人は多くの(多くの)友達を持つことができるため、関係は多対多ではなく、1対多です:Sその他 多対多の関係が本当に必要な場合は、3番目のテーブルが必要だと思います接着する。この場合、「人には多くの友達がいる」という1対多の関係がある場合。Person->friends->findAll() を実行して、特定の人物 ID のすべての友達を取得できます:)

于 2011-02-21T03:02:50.920 に答える