我在HTML和数据库方面不是100%,但是我到了那里。我做了什么但是当我编辑一个有复选框的页面时却没有。
在我的数据库迁移中:
$table->string('check_this')->nullable();
在观看中:
<div class="checkbox">
@if ($job->check_this == 'selected')
<label><input type="checkbox" name="check_this" value="selected" checked>Yes.</label>
@else
<label><input type="checkbox" name="check_this" value="selected">Yes.</label>
@endif
</div>
选中复选框后,它会写入数据库,因此我的if语句无法正常工作。有没有办法,如果取消选中它会删除数据库中的值?
也许我认为这是错误的方式,因为迁移中的复选框格式正确。
答案 0 :(得分:0)
您的迁移应如下所示:
$table->boolean('check_this');
和视图部分:
@if ($job->check_this)
请参阅:http://laravel.com/docs/master/schema#adding-columns了解Laravel中所有可用类型的“列”。
答案 1 :(得分:0)
如果没有收到任何内容,则复选框不会发送任何内容,因此除非您检入控制器并且是否&#34; check_this&#34;否则数据库将不会更新。未在您的请求中设置,在数据库中将此值设置为0。
$obj = Obj::find($id); //get your object from database
$input = Request::all(); //or $request->all() if you use requests
if(!isset($input['check_this'])){
$input['check_this'] = 0; //or whatever you want
}
$obj->fill($input);
$obj->save();
注意: 您可以简化视图
<div class="checkbox">
<label><input type="checkbox" name="check_this" value="selected" @if ($job->check_this == 'selected') checked @endif>Yes.</label>
</div>
当然,如果你不需要这个特定的字符串,那么在这个字段中使用布尔值的答案会优化你的数据库。