1. ホーム
  2. php

[解決済み] laravel NotFoundHttpException

2022-02-09 08:51:35

質問

laravelの初心者です。別のページへのリンクを作ろうとしています。インデックスページがあり、インデックスページで選択された車両の情報を表示するdescに移動したいのです。 問題は、それがエラーを表示することです。

Symfony ⇄コンポーネント ⇄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

ルーティング.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'));

解決方法は?

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");
   }
}

EDIT

ほとんどのルートを手動で作成しているので、この方法でインデックスを作成することもできます。

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