I keep getting a MethodNotAllowedHttpException error on a resourceful route that I have set up. The patch/put requests exist when I run php artisan route:list, my form refers to jobs.update and passes on the id. I use this same process for all of the application's other modules without such an issue. Any ideas where the exception might be coming from?
My routes file:
// Authentication routes...
Route::get('auth/login', 'Auth\AuthController@getLogin');
Route::post('auth/login', 'Auth\AuthController@postLogin');
Route::get('auth/logout', 'Auth\AuthController@getLogout');
// Registration routes...
Route::get('auth/register', 'Auth\AuthController@getRegister');
Route::post('auth/register', 'Auth\AuthController@postRegister');
//Homepage...
Route::get('/', function () { return view('homepage'); });
// Resourceful modules...
Route::resource('conferences', 'ConferencesController');
Route::resource('pages', 'PagesController');
Route::resource('jobs', 'JobsController');
Route::resource('admin/menu', 'MenuItemsController');
// Actions...
Route::put('admin/menu/{id}/promote', [
'as' => 'admin.menu.promote', 'uses' => 'MenuItemsController@promote'
]);
Route::put('admin/menu/{id}/demote', [
'as' => 'admin.menu.promote', 'uses' => 'MenuItemsController@demote'
]);
Route::get('{parent}/{slug}', 'PagesController@show');
Route::get('{slug}', 'PagesController@showSlug');
My update method:
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$job = $this->job->find($id);
$job->update($request->all());
return redirect('jobs.index');
}
My form:
<form action="" method="POST" class="col s12" enctype="multipart/form-data">
{!! csrf_field() !!}
<div class="row">
<div class="input-field col s12 m6">
<input type="text" name="position" id="position" class="validate" placeholder="Position" value="">
<label for="position" class="col-sm-3 control-label">Position</label>
</div>
<div class="input-field col s12 m6">
<select name="type" id="type">
@if($job->type == "full")
<option value="" disabled selected>Type</option>
<option value="full" selected>Full-time</option>
<option value="part">Part-time</option>
<option value="other">Other</option>
@elseif($job->type == "part")
<option value="" disabled selected>Type</option>
<option value="full">Full-time</option>
<option value="part" selected>Part-time</option>
<option value="other">Other</option>
@elseif($job->type == "other")
<option value="" disabled>Type</option>
<option value="full">Full-time</option>
<option value="part">Part-time</option>
<option value="other" selected>Other</option>
@else
<option value="" disabled selected>Type</option>
<option value="full">Full-time</option>
<option value="part">Part-time</option>
<option value="other">Other</option>
@endif
</select>
<label>Type</label>
</div>
</div>
<div class="row">
<div class="input-field col s12 m6">
<input type="text" name="reports_to" id="reports_to" class="validate" placeholder="Reports to" value="">
<label for="reports-to" class="col-sm-3 control-label">Reports to</label>
</div>
<div class="input-field col s12 m6">
<input type="text" name="office_department" id="office_department" class="validate" placeholder="Reports in office" value="">
<label for="office_department" class="col-sm-3 control-label">Reports in office</label>
</div>
</div>
<div class="row">
<div class="input-field col s12 m6">
<input type="date" class="datepicker" name="start_date" id="start_date" class="validate" value="">
<label for="start-date" class="col-sm-3 control-label">Start date</label>
</div>
<div class="input-field col s12 m6">
<input type="date" class="datepicker" name="application_due_date" id="application_due_date" class="validate" value="">
<label for="application_due_date" class="col-sm-3 control-label">Application Due Date</label>
</div>
</div>
<div class="row">
<div class="input-field col s12 m6">
<input type="text" name="city" id="city" class="validate" placeholder="City" value="">
<label for="city" class="col-sm-3 control-label">City</label>
</div>
<div class="input-field col s12 m6">
<input type="text" name="state" id="state" class="validate" placeholder="State" value="">
<label for="state" class="col-sm-3 control-label">State</label>
</div>
</div>
<div class="row">
<div class="input-field col s12 m6">
<input type="text" name="institution" id="institution" class="validate" placeholder="Institution" value="">
<label for="institution" class="col-sm-3 control-label">Institution</label>
</div>
<div class="input-field col s12 m6">
<input type="text" name="salary_range" id="salary_range" class="validate" placeholder="Salary Range" value="">
<label for="institution" class="col-sm-3 control-label">Salary Range</label>
</div>
</div>
<div class="row">
<div class="input-field col s12 m12">
<p class="col-sm-3 control-label">Job Description</p>
<textarea name="job_description" id="job_description" class="mce validate"></textarea>
</div>
</div>
<div class="row">
<div class="input-field col s12 m12">
<p class="col-sm-3 control-label">Job Duties</p>
<textarea name="job_duties" id="job_duties" class="mce validate" ></textarea>
</div>
</div>
<div class="row">
<div class="input-field col s12 m12">
<p class="col-sm-3 control-label">Qualifications</p>
<textarea name="qualifications" id="qualifications" class="mce validate" ></textarea>
</div>
</div>
<div class="row">
<div class="input-field col s12 m12">
<p class="col-sm-3 control-label">Benefits</p>
<textarea name="benefits" id="benefits" class="mce validate" ></textarea>
</div>
</div>
<div class="row">
<div class="input-field col s12 m12">
<p class="col-sm-3 control-label">Application Procedure</p>
<textarea name="application_procedure" id="application_procedure" class="mce validate" ></textarea>
</div>
</div>
<div class="row">
<div class="input-field">
<button class="btn waves-effect waves-light col s12 m3" type="submit" name="action">Submit
<i class="material-icons right">send</i>
</button>
</div>
</div>
</form>
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire