很抱歉,在Zizaco/entrust
上遇到新用户注册时,他没有任何作用的问题,
我需要成为客户Role
。
在RegisterController
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
$role = Role::where('name','client')->firstOrFail();
$user->attachRole($role);
return $user;
}
答案 0 :(得分:0)
显示的代码乍一看似乎正确。我假设您已遵循github izaco / entrust的配置说明,对吗?
如果没有,我建议您转到我们告诉您如何配置和使用它的页面。他们在那里解释得比我在这里能做的要好得多。
我也在stackoverflow上找到了一个与您类似的问题
stackoverflow similar question
我希望这可以帮助您找到所需的答案。 亲切的问候。
已更新 我回过头来检查您的代码,但并没有因为您返回了代码,而是直接在变量中对其进行了测试,因此这对我有用。抱歉,我以前没有注意到。
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
更改为
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
实际上,我在找到并附加为链接的相关问题中就是这样。
无论如何,我很高兴您为自己解决了这个问题。亲切的问候。
答案 1 :(得分:0)
我用了它,效果很好:
protected function create(array $data)
{
$userModel = new User();
$userModel->name = $data['name'];
$userModel->email = $data['email'];
$userModel->password = Hash::make($data['password']);
$userModel->save();
$role = Role::where('name', 'client')->first();
$userModel->roles()->attach($role->id);
return $userModel;
}