我有一些默認情況下在MySQL中爲NULL的字段。例如,在下面的代碼片段中,名稱是必需的且不爲空,但是name_abbrev,email_general和description都是可以爲空的,並且在數據庫中默認設置爲NULL。但通過Laravel中的表格輸入數據大多數不起作用。如果我插入只有名稱的行,而其他所有內容都保留爲空白,則當然名稱是正確輸入的,並且爲email_general輸入NULL,但其他兩個可爲空的字段會發布空字符串而不是NULL。如果我通過更改名稱來更新行,則更新也會將email_general的NULL更改爲空字符串。如果我手動將數據庫行中可空字段的值從空字符串更改爲NULL,那麼當我更新行(仍將所有空字段留空)時,它會將所有NULL字段更改爲空字符串。我找不到任何我做錯的事。爲什麼它不會輸入NULL(除了在與其他編碼完全相同的一個字段中),以及爲什麼更新甚至將該字段更改爲空字符串?NULL默認值不一致,&更新將NULL更改爲空字符串Laravel4
控制器:
public function store()
{
$component = new Component;
$component->name = Input::get('name');
$component->name_abbrev = Input::get('name_abbrev');
$component->email_general = Input::get('email_general');
$component->description = Input::get('description'); ...
$component->save();
return Redirect::route('components.index');
}
public function update($id)
{
$component = $this->component->find($id);
$component->name = Input::get('name');
$component->name_abbrev = Input::get('name_abbrev');
$component->email_general = Input::get('email_general');
$component->description = Input::get('description'); ...
$component->save();
return Redirect::route('components.index');
}
create.blade.php:
{{ Form::open(['route' => 'components.store']) }}
<div class="required">
{{ Form::label('name','Name:') }}
{{ Form::text('name') }}
{{ $errors->first('name') }}
</div>
<div>
{{ Form::label('name_abbrev','Abbreviation:') }}
{{ Form::text('name_abbrev', NULL) }}
</div>
<div>
{{ Form::label('email','General Email:') }}
{{ Form::text('email',NULL) }}
</div>
<div>
{{ Form::label('description','Description:') }}
{{ Form::textarea('description',NULL,['size' => '26x3']) }}
</div> ...
<div>
{{ Form::submit('Add New Component', array('class'=>'button')) }}
</div>
{{ Form::close() }}
edit.blade.php:
{{ Form::model($component, array('method'=>'put','route'=>array('components.update', $component->id))) }}
<div class="required">
{{ Form::label('name','Name:') }}
{{ Form::text('name') }}
{{ $errors->first('name') }}
</div>
<div>
{{ Form::label('name_abbrev','Abbreviation:') }}
{{ Form::text('name_abbrev', NULL) }}
</div>
<div>
{{ Form::label('email_general','General Email:') }}
{{ Form::text('email_general', NULL) }}
</div
<div>
{{ Form::label('description','Description:') }}
{{ Form::textarea('description',NULL,['size' => '26x3']) }}
</div> ...
<div>
{{ Form::submit('Update Component', array('class'=>'button')) }}
</div>
{{ Form::close() }}
非常感謝!這應該很容易,但由於某種原因,事實並非如此。
謝謝 - 我已經學會了如何使用增變器,它完美地解決了我的問題! – flitedocnm