Laravel 5如何使用刀片模板填充编辑表单字段和数据库记录

时间:2016-08-06 19:34:59

标签: forms laravel-5

我是laravel的新手,我正在开发一个laravel 5项目,该项目要求我用数据库中的值填充表单的字段。这是我的控制器方法:

public function edit($id)
{
    $poem = Poem::where('id', $id)->get();
    return view('admin.poem_edit', compact('poem'));
}

这是视图(表格):

{!! Form::open(array('url' => 'admin/poem', 'class' => 'form')) !!}
<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">

<div class="form-group">
    {!! Form::label('Title') !!}
    {!! Form::text('title', null, array('required', 'class'=>'form-control')) !!}
</div>

<div class="form-group">
    {!! Form::label('author') !!}
    {!! Form::text('author', null, array('required', 'class'=>'form-control')) !!}
</div>


<div class="form-group">
    {!! Form::label('poem') !!}
    {!! Form::textarea('body', null, array('required', 'class'=>'form-control')) !!}
</div>

<div class="form-group">
    {!! Form::submit('Post New poem', array('class'=>'btn btn-primary')) !!}
</div>
{!! Form::close() !!}

我的目标是将表示表单字段值的null替换为数据库中的值。

我已尝试过某些人建议的Input::old('title')方法,但它根本无效。谢谢你的帮助

2 个答案:

答案 0 :(得分:1)

使用表单模型绑定(https://laravelcollective.com/docs/5.2/html#form-model-bindinghttps://laravel.com/docs/4.2/html#form-model-binding

除此之外,您可以将您的代码更改为:

public function edit($id)
{
    return view('admin.poem_edit')->with('poem', Poem::findOrFail($id));
}

答案 1 :(得分:0)

首先你应该替换

public function edit($id)
{
    $poem = Poem::where('id', $id)->get();
    return view('admin.poem_edit', compact('poem'));
}

public function edit($id)
{
     return view('admin.poem_edit')->with('poem', Poem::findOrFail($id));
}

如Derp所述 然后你可以像这样替换

{!! Form::open(array('url' => 'admin/poem', 'class' => 'form')) !!}
{!! csrf_field() !!}

<div class="form-group">
    {!! Form::label('Title') !!}
    {!! Form::text('title', $poem->title, array('required', 'class'=>'form-control'))     !!}
</div>

<div class="form-group">
    {!! Form::label('author') !!}
    {!! Form::text('author', $poem->author->name, array('required', 'class'=>'form-control'))     !!}
</div>

<div class="form-group">
    {!! Form::label('poem') !!}
    {!! Form::textarea('body', $poem->body, array('required', 'class'=>'form-control')) !!}
</div>

<div class="form-group">
    {!! Form::submit('Post New poem', array('class'=>'btn btn-primary')) !!}
</div>
{!! Form::close() !!}