在一个工作门户网站上工作,所以我到了雇主需要编辑他们发布的工作的时候,在页面加载时,它给了我一个错误Route [employers/job/save/Mw==] not defined
,请我需要帮助,我的截止日期是3小时后!
这是我的代码:
路线:
//Route for Employer's specified Job Editting -> To get ID as argv
Route::get('employers/job/edit/{id}', 'employerController@editJob');
//Route for Employer's to save specified Job after Editting -> To get ID as argv
Route::post('/employers/job/save/{id}', [
'as' => 'saveJob',
'uses' => 'employerController@saveJob'
]);
视图:
{{ Form::open(['action'=>'employers/job/save/'.base64_encode($jobData->id),'class'=>'full-job-form', 'id'=>'jobForm','role'=>'form']) }}
<div class="form-group col-lg-12 col-sm-12 col-md-12">
<label class="sr-only" for="">Job Title</label>
<input type="text" class="form-control"
name="job_title" placeholder="Job Title"
value="{{ $jobData->job_title }}">
<span class="help-block">Eg. Marketing Manager</span>
</div>
您的问题是在Form::open()
调用中使用action
参数。这需要控制器方法的名称(例如{{ Form::open(['action' => 'employerController@saveJob']) }}
。如果您想链接到预先生成的URL,请使用url
参数:
{{ Form::open(['url' => 'employers/job/save/'.base64_encode($jobData->id)]) }}
也就是说,这不是最好的做法,因为如果你改变路由系统,你现在必须改变所有这些硬编码的URL。因此,您应该依赖命名路由或控制器操作。
现在,您的路由已经命名为('as' => 'saveJob'
),因此您实际上应该使用Form::open()
:的route
参数
{{ Form::open(['route' => ['saveJob', base64_encode($jobData->id)]]) }}
或者,您可以像当前尝试的那样使用action
参数(尽管是错误的):
{{ Form::open(['action' => ['employerController@saveJob', base64_encode($jobData->id)]]) }}
有关详细信息,请参阅表单上的文档。
此外,正如@TheShiftExchange所说,使用64进制编码的id有点奇怪,为什么不使用原始id呢?