2016-04-04 30 views
4

ich ein Argument in einer erstellen Aktion verwenden möchten, aber wenn ich versuche, die Aktion aufzurufen:mit Argumenten [Laravel 5.2] Erstellen

Argument Fehlt 1 für App \ Http \ Controllers \ AdsDiagController :: erstellen()

Hier ist die Aktion erstellen:

public function create($id){ 
    $record = TestRecord::findOrFail($id); 
    return view("adsdiag.create", ["record" => $record]); 
} 

Hier ist der Link zu der Aktion:

<a href="{!! action('[email protected]', $record->id) !!}">Create</a>

Und die Route:

Route::resource('adsdiag', 'AdsDiagController'); 

Ich bin Neuling in Laravel, und ich bin wirklich verwirrt mit Routen. Ich schätze jede Hilfe.

Antwort

3

Ihr Problem zu lösen, sollten Sie in Ihrem route.php

verwenden
Route::get('adsdiag/{id}/',[email protected]); 

Grund

Wenn Sie Route::resource('adsdiag', 'AdsDiagController') anrufen, erzeugt es diese Ro nuten

Route::get('adsdiag','[email protected]'); 
Route::post('adsdiag','[email protected]'); 
Route::get('adsdiag/create','[email protected]'); // you can see that create method doesn't have any arguments here. 
Route::get('adsdiag/show/{id}','[email protected]'); 
Route::post('adsdiag/update','[email protected]'); 
Route::get('adsdiag/edit/{id}','[email protected]'); 
Route::delete('adsdiag/destroy/{id}','[email protected]'); 

Da Route::get('adsdiag/{id}/',[email protected]); nicht erzeugt durch Resourcce so müssen Sie explizit in Ihre Route aufzunehmen.

0

Sie müssen die Argumente der action() Helfer-Methode in einem Array übergeben, auch wenn es nur ein Argument ist:

action('[email protected]', [$record->id])