2017-04-20 34 views
0

在我的Users模型上,它只能接受某些列嗎?Laravel雄辯模型只傳遞某些參數

就像我在Users型號上傳遞用戶名,電子郵件和密碼一樣,它將過濾爲只接受用戶名和密碼。

我試圖填滿protected $fillable = ['username','password'];,但它似乎不起作用。

+0

什麼錯您?你能顯示任何錯誤嗎? – Jusfunny

+0

你的模型中有'protected $ guarded = [];'嗎? –

回答

0

這取決於您的數據庫中用戶模型的架構。有一個laravel附帶的用戶表的遷移文件,如果你運行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(); 
    }); 

你可以看到,只有三列,你可以在默認情況下填寫,你可以,如果你添加更多的在這裏通緝。儘管在對遷移文件進行更改之前,您需要運行php artisan migrate:rollback,然後再運行php artisan進行遷移。 (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')]);