【问题标题】:laravel NotFoundHttpExceptionlaravel NotFoundHttpException
【发布时间】:2014-05-02 14:11:40
【问题描述】:

我是 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

routes.php

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'));

【问题讨论】:

    标签: php laravel-4


    【解决方案1】:

    “NotFoundHttpException”表示 Laravel 无法找到请求的路由。

    您的 desc 路由只是一个 POST 路由,link_to_action 将创建一个 GET 请求,因此您可能还需要更改添加一个 GET 路由:

    Route::post('desc', array('uses' => 'CarController@show'));
    Route::get('desc', array('uses' => 'CarController@show'));
    

    还有一个any,它执行GET、POST、PUT、DELETE:

    Route::any('desc', array('uses' => 'CarController@show'));
    

    如果您需要从路由中获取和id,则必须将其添加为参数:

    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', array('uses' => 'CarController@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'));
    

    【讨论】:

    猜你喜欢
    • 2016-12-02
    • 1970-01-01
    • 2017-01-23
    • 2015-01-11
    • 2013-08-17
    • 2019-03-12
    • 2015-03-03
    • 2015-12-06
    • 1970-01-01
    相关资源
    最近更新 更多