как получить () отношения 3 уровня глубоко в маппере данных в коде воспламенитель? - PullRequest
0 голосов
/ 02 февраля 2012

Я проектирую базу данных с помощью средства отображения кода воспламенителя.Представьте себе, что у меня есть три таблицы: одна с пользователями, одна с друзьями, другая с едой, похожей на друга.Я пытаюсь получить доступ к еде, как друг.Я заполнил все таблицы с картографом данных.Вот как я это делаю:

user таблица имеет поля id, user_name, gender, user_id.

У каждого пользователя есть много друзей, и таблица друзей:

friend таблица содержит id, friend_id, friend_name, user_id

У каждого друга есть много продуктов, и вот таблица для него: friend id food

Мне удалось заполнить таблицы, указав значения.Скажем, например:

user:
1 andy male 394 
2 jen  female 439
..

friend:
1 243 mark 394
2 493 silvia 394
3 459 gloria 439
...

Поэтому, когда я пытаюсь получить доступ к другу пользователя из базы данных, я делаю это:

$u->get_by_user_id($data['user']['id']);

if ($u->exists())
{ 
$data['user']['first_name'] = $u->first_name;
$data['user']['last_name'] = $u->last_name;
$data['user']['gender'] = $u->gender;
$data['user_friends']=$u->friend->get();

, и это работает ... (я нене знаю, почему он знает, к какому идентификатору друга относится) но это работает ... сейчас я пытаюсь пойти на один уровень глубже и получить или получить () еду друзей каждого пользователя ... но я не знаюкак?

1 Ответ

0 голосов
/ 03 февраля 2012

Хорошо, я нашел ответ:

 if ($u->exists())
{ 
$data['user_profile']['first_name'] = $u->first_name;
    $data['user_profile']['last_name'] = $u->last_name;
$data['user_friends']=$u->friend->get();

foreach($u->friend->get()->all as $u){

$fm=new Food();
$fm->get_by_friend_id($u->friend_id)->get();

foreach($fm->all as $fm){
//stuff
          }
}
...