Laravel如何使用注册控制器
问题描述:
我正在使用模板adminlte ..但我想使用由adminlte提供的注册控制器,但我有一个问题..当我想注册..我有两个选项卡..第一标签是客户,第二个标签是驱动程序。 Laravel如何使用注册控制器
的probelem是我no identitas column
这是我registerController
protected function create(array $data)
{
$fields = [
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'phone' => $data['phone'],
'gender' => $data['gender'],
'no_identitas' => $data['no_identitas'],
];
$activation = Activation::create([
'code' => str_random(20),
]);
$user = User::create($fields);
$user->activation()->save($activation);
if($data['no_identitas']){
$porter = Porter::create($fields);
$porter->user()->save($user);
}else{
$customer = Customer::create($fields);
$customer->user()->save($user);
}
return $user;
}
我,当我尝试存储客户数据,因为在客户表的错误,我没有no_identitas列
答
正如我在评论中提到的,您有两种选择。
轻松一:
no_identitas = NULL
。假设你的列是可空的。
哈德AKA正确的:
你应该有一个有两个值的enum
类型:user
或customer
。当存储数据,你应该首先检查用户是否是user or customer
if($user->type == 'user'){
$user->no_identitas = $no_identitas
}else{
$user->no_identitas = NULL
}
显示当您应该检查从哪个用户正在从显示数据的数据:
if($user->type == 'user'){
{{ $user->no_identitas }}
}else{
<h2> This user has no identitas </h2>
}
有几种解决方案,您的问题。我的两分钱将是:'$ model-> no_identitas = NULL',如果你的列是'可空'的。你有两种'用户'。我的建议是:用'no_identitas'创建一个新表,并创建一个新的列,说明用户类型:'user'或'customer'。当你想显示关于用户/客户的信息时,你应该首先检查他们是否是'用户'或'客户'。 –