2017-10-07 7 views
0

私はテンプレートadminlte ..を使用していますが、私はadminlteで提供されているレジスタコントローラを使いたいのですが、問題があります。登録したいときは..まず2つのタブがあります。 2番目のタブはドライバです。 probelemは私がno identitas columnLaravel registercontrollerの使い方

これは顧客テーブルで、私が持っていないので、私は、顧客データを保存しようとしていたとき、私はエラーを得た私の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

あなたの問題のいくつかのソリューションがあります。私の2つのセントは、 '$ model-> no_identitas = NULL'であり、カラムが' nullable'の場合です。あなたには2種類の 'ユーザー 'があります。私の助言は、 'no_identitas'だけで新しいテーブルを作成し、' user'や 'customer'のタイプを示す新しいカラムを作成することです。ユーザー/顧客に関する情報を表示する場合は、最初に 'user'または' customer'であるかどうかを確認する必要があります。 –

答えて

0

コメントに記載されているとおり、2つの選択肢があります。

簡単に1

no_identitas = NULL。あなたの列がNULL可能であると仮定します。 1

ハーダーAKA正しい:userまたはcustomer

あなたは、2つの値を持つenumタイプを持つ必要があります。データを保存するときは、最初のユーザーが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> 
} 
関連する問題