【发布时间】:2015-05-20 23:54:10
【问题描述】:
在 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 个模型:Users、Pages、Group_pages 和 Groups。所以在模型中,我这样定义关系:
用户模型:
public function group()
{
return $this->belongsTo('group', 'group', 'id');
}
组模型:
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 中所述。
但这给了我错误:
找不到类 group_pages
这里出了什么问题?
我不确定如何分配关系中的键。
我知道:
一对一逆向:
return $this->belongsTo('class', 'local_key', 'parent_key');
一对多:
return $this->hasMany('class', 'foreign_key', 'local_key');
我不知道一对多逆向。我知道它是: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-model(甚至更好的GroupPage)并更改对应关系(return $this->hasMany('GroupPage', 'group_id', 'id');在你的Group-model中 -
@nozzleman 创建此页面后,我确实做到了。等等,让我在问题中显示它。
-
好的,我猜这是要去哪里。让我回答。
标签: php mysql laravel laravel-4 model