Laravelモデルがコントローラーメソッドでバインドされていません

ChronoFish

LaravelモデルPurhaseOrderPurchaseOrdersControllerメソッド付きのコントローラーがありますshow

インタージャーを使用してメソッドをタイプキャストした場合:

public function show(int $purchaseOrder)
{
        dd(PurchaseOrder::find($purchaseOrder));
}

次にdd()、私が期待するものをダンプします(IDが$ PurchaseOrderと一致するデータベース内のレコード)

ただし、代わりにこれを行う場合:

public function show(PurchaseOrder $purchaseOrder)
{
        dd($purchaseOrder);
}

次に$purchaseOrder、空のモデルであり、データベースからのデータは入力されていません。私のルートは次のようになります:

Route::get('purchase-orders/{purchase_orders}/show', ['as' => 'admin.purchase-orders.show', 'uses' => 'PurchaseOrdersController@show']);

これは私が継承したコードであり、Laravel5.3からLaravel5.6に更新しようとしています。モデルが正しく入力されないというこの問題を解決するには、どこを探す必要がありますか?

アルファ

暗黙的なモデルバインディングでは、変数名をルートパラメータ名と一致させる必要があります。たとえば、次のメソッドの場合です。

public function show(PurchaseOrder $purchaseOrder)
{
    dd($purchaseOrder);
}

ルートには、一致するパラメータ名が含まれている必要があります。次に例を示します。

Route::get('purchase-orders/{purchaseOrder}/show', [
    'as' => 'admin.purchase-orders.show',
    'uses' => 'PurchaseOrdersController@show'
]);

内のメソッドのパラメータ名、ということに注意してくださいshowしている方法$purchaseOrderとルートパラメータ名{purchaseOrder}そうしないと、結合明示的にモデルをしなければならない、同じであり、それが結合暗黙のモデルのための要件の両方、あなたが明示的にあなたについての枠組みを教えてきましたパラメータ名、たとえば(in RouteServiceProvider):

public function boot()
{
    parent::boot();

    Route::model('purchase_orders', App\PurchaseOrder::class);
}

これ{purchase_orders}により、ルートで使用可能なパラメーター名がある場合、PurchaseOrderモデルのインスタンスをそのルートの指定されたメソッドに解決/バインドすることがフレームワークに通知されます

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

モデル内のMVCコントローラーリストがバインドされていません

分類Dev

コンパイルエラー、関数/メソッドが作成されていません!brmsモデル用

分類Dev

Magentoコントローラーメソッドがルートで呼び出されていません

分類Dev

Angular JS:ルートプロバイダーコントローラーメソッドが呼び出されていませんか?

分類Dev

オブジェクトメソッドコールバックは、パラメーターとして渡された場合はイベントハンドラーでのバインディングを失いますが、ハードコーディングされた場合は失われません。

分類Dev

ASP.NETコアモデルがAJAX経由でコントローラーにバインドされていません

分類Dev

コントローラーのインデックスメソッドが呼び出されましたが、コントローラーでは使用されていません

分類Dev

ドロップゾーンがモデルにバインドされていません

分類Dev

ルートパラメータが変更されても、コンポーネントは新しいデータでリロードされません

分類Dev

AngularJs 1.5 ES6:コントローラーでバインドが定義されていません

分類Dev

Laravelリソースルーティング-更新により「メソッドが許可されていません」エラーがスローされます

分類Dev

コンパイル時エラー:オーバーロードされたメソッドの呼び出しがあいまいです。どうして?

分類Dev

ここではメソッド参照式は予期されていません。コンパイル時エラー

分類Dev

Laravelルートが正しいコントローラーメソッドに移動しません

分類Dev

QSqlDatabase:QSQLITEドライバーがロードされていません-デバッグモードのみ

分類Dev

Springファイルのアップロードがモデル属性オブジェクトにバインドされていません

分類Dev

Intellij IDEAインラインドキュメントでは、{@ code}ブロックがモノスペースとして強調表示されていません

分類Dev

Vue CLIエラー:プロパティまたはメソッド「データ」がインスタンスで定義されていません

分類Dev

コントローラがFXMLで指定されている場合、TableViewにデータを追加できません。コントローラが指定されていない場合、 `onAction`をバインドできません

分類Dev

GooglePlayデベロッパーコンソールのアプリでサポートされているデバイスがありません

分類Dev

android.os.LooperのメソッドmyLooperはコルーチンでモックされていません

分類Dev

プラットフォーム「android」は、有効なコルドバプラットフォームではないようです。API.jsがありません。アンドロイドはサポートされていません

分類Dev

TS-クラスメソッドがコールバックで定義されていません

分類Dev

ASP.NET Core2.2コントローラーへのPostmanフォームデータがプライベートセッターでコマンドにバインドされていません

分類Dev

AngularAPI呼び出しがコントローラーメソッドでヒットしていません

分類Dev

Laravelモデルルートがパッケージ内でバインドされていない

分類Dev

ビューモデルデータが編集テキストにバインドされていません

分類Dev

春ブーツグローバルコントローラのアドバイスは、Springコンテキストにセットされていません

分類Dev

PHPUnit。エラー:コードカバレッジドライバーがありません。(xdebugがインストールされている)

Related 関連記事

  1. 1

    モデル内のMVCコントローラーリストがバインドされていません

  2. 2

    コンパイルエラー、関数/メソッドが作成されていません!brmsモデル用

  3. 3

    Magentoコントローラーメソッドがルートで呼び出されていません

  4. 4

    Angular JS:ルートプロバイダーコントローラーメソッドが呼び出されていませんか?

  5. 5

    オブジェクトメソッドコールバックは、パラメーターとして渡された場合はイベントハンドラーでのバインディングを失いますが、ハードコーディングされた場合は失われません。

  6. 6

    ASP.NETコアモデルがAJAX経由でコントローラーにバインドされていません

  7. 7

    コントローラーのインデックスメソッドが呼び出されましたが、コントローラーでは使用されていません

  8. 8

    ドロップゾーンがモデルにバインドされていません

  9. 9

    ルートパラメータが変更されても、コンポーネントは新しいデータでリロードされません

  10. 10

    AngularJs 1.5 ES6:コントローラーでバインドが定義されていません

  11. 11

    Laravelリソースルーティング-更新により「メソッドが許可されていません」エラーがスローされます

  12. 12

    コンパイル時エラー:オーバーロードされたメソッドの呼び出しがあいまいです。どうして?

  13. 13

    ここではメソッド参照式は予期されていません。コンパイル時エラー

  14. 14

    Laravelルートが正しいコントローラーメソッドに移動しません

  15. 15

    QSqlDatabase:QSQLITEドライバーがロードされていません-デバッグモードのみ

  16. 16

    Springファイルのアップロードがモデル属性オブジェクトにバインドされていません

  17. 17

    Intellij IDEAインラインドキュメントでは、{@ code}ブロックがモノスペースとして強調表示されていません

  18. 18

    Vue CLIエラー:プロパティまたはメソッド「データ」がインスタンスで定義されていません

  19. 19

    コントローラがFXMLで指定されている場合、TableViewにデータを追加できません。コントローラが指定されていない場合、 `onAction`をバインドできません

  20. 20

    GooglePlayデベロッパーコンソールのアプリでサポートされているデバイスがありません

  21. 21

    android.os.LooperのメソッドmyLooperはコルーチンでモックされていません

  22. 22

    プラットフォーム「android」は、有効なコルドバプラットフォームではないようです。API.jsがありません。アンドロイドはサポートされていません

  23. 23

    TS-クラスメソッドがコールバックで定義されていません

  24. 24

    ASP.NET Core2.2コントローラーへのPostmanフォームデータがプライベートセッターでコマンドにバインドされていません

  25. 25

    AngularAPI呼び出しがコントローラーメソッドでヒットしていません

  26. 26

    Laravelモデルルートがパッケージ内でバインドされていない

  27. 27

    ビューモデルデータが編集テキストにバインドされていません

  28. 28

    春ブーツグローバルコントローラのアドバイスは、Springコンテキストにセットされていません

  29. 29

    PHPUnit。エラー:コードカバレッジドライバーがありません。(xdebugがインストールされている)

ホットタグ

アーカイブ