如何使用带有laravel

时间:2017-01-17 12:17:28

标签: laravel radio-button migration

我正在努力学习laravel 5,所以我通过创建一些简单的形式来指导。 我的表单包含(id,title,..)和单选按钮

<label for="importance">Importance</label>
<input type="radio" name="Importance"
<?php if (isset($importance) && $importance=="tres_important") echo "checked";?>
    value="tres_important">très important
<input type="radio" name="importance"
    <?php if (isset($importance) && $importance=="important") echo "checked";?>
    value="important">important

现在,我需要知道我应该添加到我的迁移文件中,以使其工作&#34; create_projets_table&#34;

public function up()
{
    Schema::create('projets', function (Blueprint $table) {
        $table->increments('id',true);
        $table->string('title');
        $table->date('dateDebut');
        $table->timestamps();
    });
}

提前谢谢

更新:

根据下面的评论,我做了一些修改,但仍然没有工作,似乎出现了问题&#34; submit.blade.php&#34;

submit.blade.php:

 <div class="form-group"> 
    <label class="radio-inline">
    <input type="radio" id="tres_important" name="importance" value="tres_important">Très important</label>

    <label class="radio-inline">
    <input type="radio" id="important" name="importance" value="important">Important</label>
 </div>

这是我的迁移&#34; create_projets_table.php&#34; :

public function up()
{
    Schema::create('projets', function (Blueprint $table) {
        $table->increments('id',true);
        $table->string('title');
        $table->date('dateDebut');
        $table->date('dateFin');
        $table->float('cout');      
        $table->integer('importance');
        $table->timestamps();
    });
 }

此route.php:

Route::post('/submit', function(Request $request) {
$validator = Validator::make($request->all(), [
    'title' => 'required|max:255',
    'annee_realisation' => 'required|max:255',
    'cout' => 'required|max:255',
    'importance' => 'required',
]);
if ($validator->fails()) {
    return back()
        ->withInput()
        ->withErrors($validator);
}

    $projet = new \App\Projet;
    $projet->title = $request->title;
    $projet->annee_realisation = $request->annee_realisation;
    $projet->cout = $request->cout;
    $projet->importance = $request->importance;

    $projet->save();

    return redirect('/');
});

这是我的控制器&#34; Project_Controller&#34; :

class Project_Controller extends Controller
{
//
$this->validate(request(), [
'importance' => 'required'
]);
}

我收到以下错误:

未定义的变量:重要性

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以使用laravel表单方法,如下面的

Form::radio('name', 'value', true);

示例:

<label class="radio inline">
    {!! Form ::radio('importance','tres_important',($importance == 'tres_important' ? true : false)) !!}
    Très important
</label>
<label class="radio inline">
    {!! Form ::radio('importance','important',($importance == 'important' ? true : false)) !!}
    Important
</label>

阅读文档https://laravelcollective.com/docs/5.0/html#checkboxes-and-radio-buttons

答案 1 :(得分:0)

我没有在代码中的任何地方看到您设置了&#34; $ importance&#34;的值,您能否显示设置该值的代码?

你检查它的设置是否正常,然后检查它的值。

if (isset($importance) && $importance=="tres_important"

如果没有设置你就不能看它是什么值,这就是你在我能看到的代码中尝试做的事情。那是你的未定义错误来自哪里。如果您可以发布完整代码,则可以更轻松地跟踪