2017-07-09 9 views
0

多くのことがわかるように、Laravelはプロジェクトの作成時に自動的にユーザーモデルを作成します。私はその後、認証インターフェイスphp artisan make:authを作成しました。自動生成されたレジスタメソッドは正常に動作していました。その後、ユーザー表の移行にnot null列を追加しました。今はもう働いていません。私は、laravelがこのauth scaffoldingを作成したときに挿入が正確にどこに起こるのかわかりません。 メソッドをRegisterControllerに編集しようとしましたが、機能しませんでした。レジスタ<form>列をlaravelユーザーモデルに追加し、authレジスタの動作を維持する

class RegisterController extends Controller 
{ 

protected function create(array $data) 
    { 
     return User::create([ 
      'name' => $data['name'], 
      'email' => $data['email'], 
      'tipo' => $data['tipo'], // name of the new column I added 
      'password' => bcrypt($data['password']), 
     ]); 
    } 
} 

私は、入力フィールドtipoを追加しました。生成されたコードが含まれていますのみAuth::routes(); web.php、ルートの

/protected $fillable = [ 
    'name', 'email', 'password', 'tipo', 
]; 

:Userクラスモデルで

<form class="form-horizontal" method="POST" action="{{ route('register') }}"> 

<input id="name" type="text" class="form-control" name="name" value="{{ old('name') }}" required autofocus> 

<input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}" required> 

<select id="tipo" class="form-control" name="tipo" value="{{ old('tipo') }}" required> 
           <option value="1">Gerente</option> 
           <option value="2">Caixa</option> 
           <option value="3">Garçom</option> 
</select> 

<input id="password" type="password" class="form-control" name="password" required> 

<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required> 

<button type="submit" class="btn btn-primary"> 
           Registrar 
</button> 

を、Iが充填可能に新しい列を追加しました。私がphp artisan route:listを実行すると、POSTメソッドの場合、uri register[email protected]になりますが、RegisterControllerには私が投稿したメソッドとバリデータメソッドしかありません。登録が実際にどこで行われているのですか? laravelに関して、$user->save()メソッドを実行する場所は?

編集:私は私ので、実際にコードがcreate方法に到達していないことが判明:私がやりたいすべては、それが新しい列

編集2用の新しい<input>を含めるように変更しています戻り前にdd($data)が追加され、同じ動作が続いた場合、強制的に構文エラーが発生し、同じことが起こりました。

+0

フォームコードとposetd $データアレイの出力をコントローラ内部から投稿できますか? – yahyazini

答えて

0

まず、最近追加された列をapp \ User.phpファイルの$ fillable配列に追加します。

<?php 
namespace App; 
use Illuminate\Notifications\Notifiable; 
use Illuminate\Foundation\Auth\User as Authenticatable; 
class User extends Authenticatable 
{ 
    use Notifiable; 
    /** 
    * The attributes that are mass assignable. 
    * 
    * @var array 
    */protected $fillable = [ 
     'name', 'email', 'password', 'tipo' 
    ]; 
+0

はい、私もこれを行いましたが、まだ動作しません。 –

+0

RegisterControllerでcreateメソッドを返す前に、 'dd($ data);'を追加して出力を共有してください。 –

+0

これは特権を持っています。[プロジェクトルート] /ベンダー/ laravel /フレームワーク/ src/Illuminate/Foundation/Auth/RegistersUsers.php' –

関連する問題