我刚开始使用laravel5,但我还没有看到像laravel4那样的模型文件夹。 我的问题是。
1.模型文件夹驻留在laravel5中?
2. laravel5中有多少男性关系?
我有以下情况。
角色表 领域 。 ID 。 role_name
用户表 。 ID 。用户名 。电子邮件 。密码
数据透视表 的 ROLE_USER 。 ID 。 role_id 。 user_id
答案 0 :(得分:0)
App/
文件夹中。因为这是User模型所在的位置。创建自己的文件夹以拥有一个。 文档将涵盖此内容,找到here。这将介绍如何在相关模型中设置关系。
public function roles(){
return $this->belongsToMany('App\Role', 'Pivot_table_name', 'foreign_key', 'other_key');
}
请注意:文档中涵盖了所有内容。
现在你已经拥有了自己的关系,你可以在你的用户模型$user = User::with('roles')->find(1);
上调用它。这会急切地将你的角色加载到模型上,并且可以这样访问; $user->roles
。
该文档还包括使用找到的whereHas
方法here查询关系。
答案 1 :(得分:0)
您的应用模型应该是这样的> app/Model/Role.php
将namespace App\Model;
设置为app / Model下的所有模型文件。
多对多关系
user.php的
public function roles()
{
return $this->belongsToMany('App\Model\Role');
}
Role.php
public function users()
{
return $this->belongsToMany('App\User');
}
现在你可以像这样使用
$user = App\User::find(1);
foreach ($user->roles as $role)
{
//
}
答案 2 :(得分:0)
模型文件位于app
目录中。安装新的laravel时,您应该在User.php
目录下看到app
文件。
在Role
模型中,您应该定义一个函数:
public function users(){
return $this->belongsToMany('App\User');
}
在User
模型中,您应该定义一个函数:
public function roles(){
return $this->belongsToMany('App\Role');
}
如果你想获得属于用户的角色:
foreach($users as $user){
$roles = $user->roles;
}
如果您想让用户担任一个角色:
$users = $role->users;
foreach($users as $user){
//
}
这些是"延迟加载",只在您访问它们时加载关系。