【发布时间】:2017-04-25 12:29:16
【问题描述】:
我在 Laravel 中做了以下迁移:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class QualityCheckTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('quality_check', function (Blueprint $table) {
$table->increments('id');
$table->boolean('favicon');
$table->boolean('title');
$table->boolean('image-optimization');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('quality_check');
}
}
我有以下在前端表单提交时运行的控制器方法:
public function store(CreateArticleRequest $request) {
// $input = Request::all();
Article::create($request->all());
return redirect('articles');
}
我的表单看起来像,所以:
{!! Form::open([ 'action' => 'QualityCheckController@validateSave' , 'class'=>'quality-check-form' , 'method' => 'POST' ]) !!}
<div class="input-wrpr">
{!! Form::label('favicon', 'Favicon') !!}
{!! Form::checkbox('favicon', 'value' ); !!}
</div>
<div class="input-wrpr">
{!! Form::label('title', 'Page Title') !!}
{!! Form::checkbox('title', 'value'); !!}
</div>
<div class="input-wrpr">
{!! Form::label('image-optimization', 'Image Optimization') !!}
{!! Form::checkbox('image-optimization', 'value'); !!}
</div>
{!! Form::submit('Click Me!') !!}
{!! Form::close() !!}
所以当方法运行时,复选框的值被保存到数据库中。
截至目前,所有条目都显示为0,如下所示:
现在如何做到这样,当复选框被选中时,1 被保存,当复选框未被选中时,值留在 0 ??
【问题讨论】:
-
你可以在 Laravel 中使用 mutators。使用这个链接,你会明白的:- laravel.com/docs/5.3/eloquent-mutators
标签: php laravel checkbox laravel-5 eloquent