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列

+0

有几种解决方案,您的问题。我的两分钱将是:'$ model-> no_identitas = NULL',如果你的列是'可空'的。你有两种'用户'。我的建议是:用'no_identitas'创建一个新表,并创建一个新的列,说明用户类型:'user'或'customer'。当你想显示关于用户/客户的信息时,你应该首先检查他们是否是'用户'或'客户'。 –

正如我在评论中提到的,您有两种选择。

轻松一

no_identitas = NULL。假设你的列是可空的。

哈德AKA正确的:

你应该有一个有两个值的enum类型:usercustomer。当存储数据,你应该首先检查用户是否是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> 
}