我跟着我的 question对我的工作岗位做了同样的事情,但是当我点击更新按钮时,我得到一个空白视图(空白浏览器)。
La控制器:
public function edit($id)
{
$job = Job::whereId($id)->firstOrFail();
return view('jobs.edit')->withJob($job);
}
public function update($id)
{
$job = Job::whereId($id)->firstOrFail();
$job->fill(Input::all());
$job->save();
flash('You have successfully edited your Job Post');
return redirect('/jobs' . $id);
}
视图(编辑):
{!! Form::model($job, array('method' => 'PATCH', 'route' =>array('jobs.update', $job->id))) !!}
<div class="form-group">
{!! Form::label('job_title', 'Title') !!}
{!! Form::text('job_title', null, array('class' => 'form-control')) !!}
</div>
<div class="form-group">
{!! Form::label('job_description', 'Description') !!}
{!! Form::text('job_description', null, array('class' => 'form-control')) !!}
</div>
{!! Form::submit('Update Job Post!', array('class' => 'btn btn-primary')) !!}
{!! Form::close() !!}
路线:
Route::resource('jobs', 'JobsController');
额外的第三只眼睛和清晰的大脑将有助于我的编辑不起作用的原因。感谢。
答案 0 :(得分:1)
只需将更新功能更改为以下内容 -
public function update($id)
{
$job = \App\User::whereId($id)->firstOrFail();
$job->fill(\Input::all());
$job->save();
flash('You have successfully edited your Job Post');
return redirect('/');
}
希望它能正常工作
答案 1 :(得分:0)
奇怪的是,我的应用中的部分内容很少,我必须使用\Input
而其他部分只使用Input
。对于这种情况,这解决了答案:$job->fill(\Input::all());
答案 2 :(得分:0)
你自己提供的答案是正确的,但为了明确未来读者的观点,我将回答关于原因的问题。
任何具有命名空间的类都要求您通过其命名空间访问外观,这只是\
。因此,如果您的类(例如控制器或模型)以<? namespace Acme\Boxes;
开头,则所有外观引用也需要命名空间,例如\Input::get()
。
但是,如果您不在命名空间类(例如视图)中,则不需要使用门户网站的命名空间版本。但是尽量不要用外墙乱丢你的意见。
最后,如果你真的不喜欢到处都有\Input
和\Config
,你可以在课程顶部添加一个use语句。如
use \Input as Input;
use \Config as Config;
// ... somewhere else in this class ...//
Input::get('bla');