Laravel 5存在一個奇怪的問題,它拒絕存儲複選框值。Laravel 5不存儲複選框值
我們正在修改與Laravel 5捆綁在一起的現有註冊表單,並且我們正在添加一個optin複選框,但似乎該模型無法將其識別爲字段,即使我們將它作爲字段添加到遷移文件中。
任何幫助,將不勝感激。
Mirgration文件:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('first_name');
$table->string('last_name');
$table->string('email')->unique();
$table->string('password', 60);
$table->date('dob');
$table->boolean('optin')->nullable();
$table->rememberToken();
$table->timestamps();
});
}
然後我們把它添加到register.blade.php文件:
<div class="form-group">
<label class="col-md-4 control-label">Optin</label>
<div class="col-md-6">
<input type="checkbox" class="form-control" name="optin">
</div>
</div>
在創建用戶模型的角度來看,我們選中該複選框的值並分配它。
protected function create(array $data)
{
//this does return 1 or 0 as expected
$optin = ($data["optin"] == "on") ? 1 : 0;
return User::create([
'first_name' => $data['first_name'],
'last_name' => $data['last_name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'dob' => $data['dob'],
'optin' => $optin
]);
}
但是此時該字段爲空。沒有值輸入數據庫...
所以'$ optin'甚至沒有保存爲0? – Loko
否該字段爲空。即使在PHP修補程序中嘗試過,它仍拒絕將$ user-> optin = 1添加到用戶對象,但會讓我指定其他名稱!試圖改變名稱,但仍然不會將值添加到數據庫! –