我想在创建操作中使用参数,但是当我尝试访问操作时:
Missing argument 1 for App\Http\Controllers\AdsDiagController::create()
这是创建动作:
public function create($id){ $record = TestRecord::findOrFail($id); return view("adsdiag.create",["record" => $record]); }
以下是该操作的链接:
< a href =“{!! action('AdsDiagController @ create',$record-> id)!!}”>创建< / a>
路线:
Route::resource('adsdiag','AdsDiagController');
我是laravel的新手,我真的很困惑路线.我感谢任何帮助.
解决方法
要解决您的问题,您应该在route.PHP中使用
Route::get('adsdiag/{id}/',AdsDiagController@create);
原因
当您调用Route :: resource(‘adsdiag’,’AdsDiagController’)时,它会生成这些路由
Route::get('adsdiag','AdsDiagController@index'); Route::post('adsdiag','AdsDiagController@store'); Route::get('adsdiag/create','AdsDiagController@create'); // you can see that create method doesn't have any arguments here. Route::get('adsdiag/show/{id}','AdsDiagController@show'); Route::post('adsdiag/update','AdsDiagController@update'); Route::get('adsdiag/edit/{id}','AdsDiagController@edit'); Route::delete('adsdiag/destroy/{id}','AdsDiagController@destroy');
自Route :: get(‘adsdiag / {id} /’,AdsDiagController @ create);不是由Resourcce生成的,因此您需要明确地包含在您的路线中.