Reputation: 5
i have his code in web.php inside route folder:
Route::post('/benice', function(\Illuminate\Http\Request $request)
{
if(isset($request['action']) && $request['name']){
if(strlen($request['name']) >0){
return view('actions.nice', ['action' => $request['action'], 'name'=>$request['name']]);
}
return redirect()->back();
}
return redirect()->back();
});
and this is in home.blade.php inside the view folder:
<form action="{{ route('benice') }}" method="post">
<label for="select-action">Iwant to ...</label>
<select id="select-action" name="action">
<option value="greet">greet</option>
<option value="hug">hug</option>
<option value="kiss">kiss</option>
</select>
<input type="text" name="name"/>
<button type="submit" class="btn btn-primary btn-block">Do an action</button>
<input type="hidden" value="{{ Session::token() }}" name="_token">
</form>
the error is :
Route [benice] not defined. (View: C:\wamp64\www\testLaravel\resources\views\home.blade.php)
anyhelp will be appreciated im currently new to laravel and still learning thank you
Upvotes: 1
Views: 2779
Reputation: 9455
The route name is not the same as the route path.
Add the name to the route like so:
Route::post('/benice', function(\Illuminate\Http\Request $request) {
if(isset($request['action']) && $request['name']) {
if (strlen($request['name']) > 0) {
return view('actions.nice', ['action' => $request['action'], 'name' => $request['name']]);
}
return redirect()->back();
}
return redirect()->back();
})->name('benice');
Upvotes: 6