2016-11-23 2 views
1

Meine Routen:Aktion URL für eine Form

Route::group(['prefix' => 'product'], function() { 
    Route::get('{id}', '[email protected]')->where('id', '[0-9]+'); 
    Route::post('{id}/add', '[email protected]')->where('id', '[0-9]+'); 
}); 

Von der product/{id} Seite i wan't eine POST product/{id]/add

Aber das zu tun, was ist der beste Weg, um die Form Action-URL zu bekommen? Jetzt

ich habe:

<form method="POST" action="{{ Request::url() }}/add"> 

Es funktioniert, aber ich mag es nicht ... Und es muss einen beter Weg ...

<form method="POST" action="{{ action('[email protected]') }}/add"> 

mir eine Ausnahme gegeben. ..

Fehlende erforderliche Parameter für [Route:] [URI: product/{id}/add]. (Ansicht: .../resources/Ansichten/product/product.blade.php)

Antwort

1

Wenn Sie nicht mögen, dass, können Sie Route Namensgebung verwenden:

Route::post('{id}/add', '[email protected]') 
    ->name('product.add') 
    ->where('id', '[0-9]+'); 

und dann:

<form method="POST" action="{{ route('product.add', $id) }}"> 

Dabei ist $id eine ID eines zu übergebenden Elements.

+0

Bezieht sich '' '$ id''' auf den Parameter? – yooouuri

+0

Ich bekomme eine '' 'Undefinierte Variable: ID''' – yooouuri

+0

Ja, es bezieht sich auf den Parameter, den Sie in Route definieren als' {ID} ' –

Verwandte Themen