2013-03-12 3 views
3

Я хочу с готовностью загрузить конкретного пользователя с их профилем пользователя. Моя таблица и класс называются пользователями и пользователем соответственно. Таблица и класс My Profiles - это user_profiles и UserProfile.Как с нетерпением ждать загрузки в Laravel при поиске конкретной записи

Это то, что я пытаюсь, но это не похоже на работу

return User::with('user_profiles')->find(1); 
+0

FYI, нет никаких оснований для использования жадной загрузки (с «с()») в любом случае, если вы только получение одной записи с помощью функции поиска(). Запросы базы данных в итоге совпадают. Нежелательная загрузка полезна только при извлечении нескольких записей из базы данных. – orrd

ответ

3

Кроме того, необходимо определить relationship method в вашем User классе. Что-то вроде:

public function profile() 
{ 
    return $this->belongs_to('UserProfile'); 
} 

Вы затем ссылаться на имя метода отношений:

User::with('profile')->get() 
+0

Это сработало. Я сделал это, но у меня была функция, называемая userProfile, поэтому мне удалось изменить ее только на профиль. Я не понимал, что он использовал имя функции. – WebDevDude

0

Я нашел следующий код используется для извлечения всех свойств из одного экземпляра модели.

User::with('posts')->get()->find(1); 

возвращает такой массив

id: 1, 
name: 'john', 
posts: [ 
    { 
    id: 1, 
    title: 'something', 
    } 
] 

Добавлено:

Это будет медленным, поскольку ->get() retrives все данные из БД.

так

User::with('posts')->find(1)