2017-04-20 4 views
0

私のUsersモデルでは、特定の列のみを受け入れることができますか?Laravel Eloquentモデルは特定のパラメータのみを渡します

Usersモデルでユーザー名、電子メール、パスワードを渡すと、ユーザー名とパスワードのみを受け入れるようにフィルタされます。

私はprotected $fillable = ['username','password'];を埋めようとしましたが、うまくいかないようです。

+0

をの何が問題に君は?何かエラーを表示できますか? – Jusfunny

+0

あなたのモデルには 'protected $ guarded = [];'がありますか? –

答えて

0

これは、データベース内のUserモデルのスキーマによって異なります。 laravelに含まれているusersテーブル用の移行ファイルがあります。これは、php artisan migrateを実行している場合はデータベースに存在するはずです。ここでLaravelに付属(/データベース/移行で見つかった)移行ファイルの一部です:

Schema::create('users', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->string('name'); 
     $table->string('email')->unique(); 
     $table->string('password'); 
     $table->rememberToken(); 
     $table->timestamps(); 
    }); 

あなたは、デフォルトで埋めることができる唯一の3つの列があることがわかります、そしてあなたがあれば、ここで多くを追加することができます欲しかったphp artisan migrateを実行する必要がありますが、移行ファイルを変更する前にロールバックしてから、php artisan migrateを再度実行してください。 (https://laravel.com/docs/5.4/migrations

は、保護された$の充填可能な配列は、ちょうど性質が大量に割り当てることができた(https://laravel.com/docs/5.4/eloquent#mass-assignment)を選択しますので、あなたは、静的を使用したい、このような方法で作成した場合には、これらが必要になります。

User::create(['name' => 'John Doe', 'email' => '[email protected], 'password' => bcrypt('password')]); 
関連する問題