我是laravel的新人.我正在尝试建立到另一个页面的链接.我有页面索引,并且想去desc,它显示有关在索引页面中选择的车辆的信息.
问题是它显示错误:
问题是它显示错误:
Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException
index.blade.PHP @foreach ($cars as $car) <tr> <td> {{link_to_action('CarController@show',$car->Description,$car->id)}}</td> {{ Form::open(array('action' => 'CarController@show',$car->id)) }} {{ Form::close() }} <td>{{ $car->License }}</td> <td>{{ $car->Milage }}</td> <td>{{ $car->Make }}</td> <td>{{ $car->status }}</td> </tr> @endforeach
Route::resource('/','CarController'); Route::resource('create','DataController'); Route::post('desc',array('uses' => 'CarController@show')); Route::post('create',array('uses' => 'CarController@create','uses' => 'DataController@index')); Route::post('update',array('uses' => 'CarController@update')); Route::post('store',array('store' => 'CarController@store'));
‘NotFoundHttpException’表示Laravel无法找到请求的路由.
您的desc路由只是一个POST路由,而link_to_action将创建一个GET请求,因此您可能还需要更改添加GET路由:
Route::post('desc',array('uses' => 'CarController@show')); Route::get('desc',array('uses' => 'CarController@show'));
还有一个,它可以执行GET,POST,PUT,DELETE:
Route::any('desc',array('uses' => 'CarController@show'));
Route::post('car/{id}',array('uses' => 'CarController@show'));
您必须访问您的页面:
http://myappt.al/public/car/22
但是如果你想访问它:
http://myappt.al/public/22
你需要这样做:
Route::post('{id}',array('uses' => 'CarController@show'));
但是这个是危险的,因为它可能会抓住所有路线,所以你必须将它设置为你最后的路线.
并且您的控制器必须接受该参数:
class CarController extends Controller { public function show($id) { dd("I received an ID of $id"); } }
编辑:
既然你手动制作了大部分路线,你也可以这样使用索引:
Route::resource('create','DataController'); Route::get('/','CarController@index'); Route::post('create','uses' => 'DataController@index')); Route::post('update',array('uses' => 'CarController@update')); Route::post('store',array('store' => 'CarController@store')); Route::get('{id}',array('uses' => 'CarController@show')); Route::post('{id}',array('uses' => 'CarController@show'));