В Laravel я только начал с моделями и у меня есть эта структура базы данных:Laravel модели отношений Класс не найден
users
id | username | password | group | //(group is the id of the group)
groups
id | groupname |
group_pages
group_id | page_id | create | read | update | delete
pages
id | pagename
Я пытаюсь проверить, если пользователь может создать/чтение/обновление/удаление на странице он на.
Так у меня есть 4 модели для этого в данный момент: пользователей, Страницы, Group_pages и группы. Таким образом, в модели, я определить отношения как так:
модель Пользователь:
public function group()
{
return $this->belongsTo('group', 'group', 'id');
}
Group Модель:
public function users()
{
return $this->hasMany('users', 'group', 'id');
}
public function group_pages()
{
return $this->hasMany('group_pages', 'group_id', 'id');
}
Я использую это в мой контроллер, как это:
$group_id = User::find(Session::get('user_id'));
$crud = Group::find($group_id->group)->group_pages()->first();
Как описано в the documentation.
, но это дает мне ошибку:
Class group_pages not found
Что происходит здесь не так?
Я не уверен в назначении ключей в отношениях.
Я знаю, что это:
Один к одному Inverse:
return $this->belongsTo('class', 'local_key', 'parent_key');
Один ко многим:
return $this->hasMany('class', 'foreign_key', 'local_key');
Я не знаю, о один ко многим Inverse , Я знаю, что это: return $this->belongsTo('table');
, но я не знаю о ключах.
Group_pages модель:
class Group_pages extends Eloquent {
public function pages()
{
return $this->belongsTo('pages', 'id', 'group_id');
}
public function group()
{
return $this->belongsTo('group', 'id', 'group_id');
}
}
это потому, что вы определяете ваши отношения с моделью, которая не существует. Создайте модель 'group_page' (или даже лучше' GroupPage') и измените соответствующее соотношение ('return $ this-> hasMany ('GroupPage', 'group_id', 'id');' в вашей модели 'Group' – nozzleman
@nozzleman После того, как я создал эту страницу, я действительно сделал. Подождите, покажите это в вопросе. – Loko
ОК, я думаю, где это будет. Позвольте мне ответить. – nozzleman