我是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')
方法,但它根本无效。谢谢你的帮助
答案 0 :(得分:1)
使用表单模型绑定(https://laravelcollective.com/docs/5.2/html#form-model-binding和https://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() !!}