eddy1010
eddy1010

Reputation: 5

laravel post route not working

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

Answers (2)

Farshad
Farshad

Reputation: 106

remove / from start of your route

Route::post('benice', ...

Upvotes: 0

Paras
Paras

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

Related Questions