Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 一对一还是一对多?_Php_Laravel_Laravel 4 - Fatal编程技术网

Php 一对一还是一对多?

Php 一对一还是一对多?,php,laravel,laravel-4,Php,Laravel,Laravel 4,表1用户: 表2角色: 我想要什么 用户模型: class User extends Eloquent implements UserInterface, RemindableInterface { protected $table = 'users'; protected $hidden = array('password', 'remember_token'); public function role() {

表1用户:

表2角色:

我想要什么

用户模型:

    class User extends Eloquent implements UserInterface, RemindableInterface {
        protected $table = 'users';
        protected $hidden = array('password', 'remember_token');

        public function role()
        {
            return $this->belongsTo('Role');
        }
    }
角色模型:


如何在视图中获取角色名称?“我的关系是否正确”

一个角色可供多个用户使用,例如:

用户1可以是管理员 user2也可以是管理员 user3是一个经理 user4也是一个经理

如果是这样的话

用户模型:

    class User extends Eloquent implements UserInterface, RemindableInterface {
        protected $table = 'users';
        protected $hidden = array('password', 'remember_token');

        public function role()
        {
            return $this->belongsTo('Role');
        }
    }
角色模型:

class Role extends Eloquent {
    protected $table = 'roles';

    public function users()
    {
        return $this->hasMany('User');
    }
}
然后使用:

User::with('role')->whereRole(1)->get(); // assuming that 1 = employee; this is eager loading
这将产生如下结果:

[
    new User([
       'id' => 1,
       'username' => 'blahblah',
       'password' => 'pass',
       'role' => 1,
       'created_at' => '0000-00-00',
       'updated_at' => '0000-00-00',
       'role' => new Role([
                    'id' => 1,
                    'role' => 'employee',
                    'created_at' => '0000-00-00',
                    'updated_at' => '0000-00-00'
                 ])
    ])
]

这是user belongsTo roleok如何获取此$users=user::all->role;的所有员工记录?尝试foreach User::with'role'->get as$User{echo$User->role->role;}如果您想要像上面显示的那样的输出,可以使用transformers
    class User extends Eloquent implements UserInterface, RemindableInterface {
        protected $table = 'users';
        protected $hidden = array('password', 'remember_token');

        public function role()
        {
            return $this->belongsTo('Role');
        }
    }
class Role extends Eloquent {
    protected $table = 'roles';

    public function users()
    {
        return $this->hasMany('User');
    }
}
User::with('role')->whereRole(1)->get(); // assuming that 1 = employee; this is eager loading
[
    new User([
       'id' => 1,
       'username' => 'blahblah',
       'password' => 'pass',
       'role' => 1,
       'created_at' => '0000-00-00',
       'updated_at' => '0000-00-00',
       'role' => new Role([
                    'id' => 1,
                    'role' => 'employee',
                    'created_at' => '0000-00-00',
                    'updated_at' => '0000-00-00'
                 ])
    ])
]