ホームページ > PHPフレームワーク > Laravel > laravelルートでパラメータを渡すときにエラーが発生した場合はどうすればよいですか?

laravelルートでパラメータを渡すときにエラーが発生した場合はどうすればよいですか?

PHPz
リリース: 2023-04-14 09:38:41
オリジナル
692 人が閲覧しました

ルーティングは、Laravel フレームワークを使用するときに非常に重要でよく使用される機能です。 Web サイトへのアクセス要求を、対応するコントローラーおよびメソッドに簡単にリンクできます。

場合によっては、コントローラーとメソッドが対応するデータ情報を取得できるように、ルートでいくつかのパラメーターを渡す必要があります。ただし、実際に使用する際にはパラメータの送信にエラーが発生する場合がありますので、その解決方法について説明します。

Laravel では、ルート パラメーターを渡す方法が 2 つあります。1 つは URL パラメーターを使用する方法、もう 1 つはルート パラメーターを使用する方法です。以下では、これら 2 つのパラメータの受け渡し方法をそれぞれ紹介します。

1. URL パラメータの受け渡し

URL パラメータの受け渡しとは、URL の後にパラメータを追加してデータ情報を渡すことです。たとえば、ユーザー ID をコントローラー メソッドに渡す必要がある場合は、次のメソッドを使用できます。

Route::get('/user/{id}', 'UserController@show');
ログイン後にコピー

このルートでは、パラメーター プレースホルダーとして {id} を使用します。 ID パラメータを渡す必要があることを示します。次に、コントローラーの show メソッドで、次のようなパラメーターを取得できます。

public function show($id)
{
    // 获取到用户ID,然后进行相应的操作
}
ログイン後にコピー

このように、ユーザーは、アクセス時に、対応するパラメーターを URL で渡す必要があります。 /user/1 は、パラメータとして 1 を show メソッドに渡します。

ただし、次のようなエラー メッセージが表示される場合があります。

Missing required parameters for [Route: user.show] [URI: user/{id}]. (View: ...)
ログイン後にコピー

このエラー メッセージは、route() 関数を使用して URL を生成するときに、必須パラメータを渡さないと、URL の生成が失敗します。解決策は、route() 関数を使用して URL を生成するときに、対応するパラメーターを渡すことです:

<a href="{{ route(&#39;user.show&#39;, [&#39;id&#39; => $user->id]) }}">用户详情</a>
ログイン後にコピー

また、複数のパラメーターを渡す必要がある場合は、複数のキーと値のペアを追加できます。配列内:

<a href="{{ route(&#39;user.edit&#39;, [&#39;id&#39; => $user->id, 'name' => $user->name]) }}">编辑用户信息</a>
ログイン後にコピー

2. ルーティングパラメータの受け渡し

ルーティングパラメータの受け渡しとは、ルート定義時にパラメータを設定してデータ情報を渡すことです。たとえば、クエリのために製品 ID と製品名をコントローラ メソッドに渡す必要がある場合は、次のメソッドを使用できます。

Route::get('/product/{id}/{name}', 'ProductController@show');
ログイン後にコピー

このルートでは、{id} を使用します。 {name} はパラメータ プレースホルダとして使用され、ID パラメータと名前パラメータを渡す必要があることを示します。次に、コントローラーの show メソッドで、次のようにこれら 2 つのパラメーターを取得できます。

public function show($id, $name)
{
    // 获取到商品ID和商品名称,然后进行相应的查询操作
}
ログイン後にコピー

この方法で、ユーザーはアクセス時に URL で対応するパラメーターを渡す必要があります。例 /product/1/Apple は、1 と Apple をパラメータとして show メソッドに渡します。

ただし、パラメーターを渡すときにエラーが発生する場合があります。たとえば、次のメソッドを使用して URL を生成する場合:

<a href="{{ action(&#39;ProductController@show&#39;, [$product->id]) }}">商品详情</a>
ログイン後にコピー

、次のエラー メッセージが表示されます:

Missing required parameters for [Route: ] [URI: product/{id}/{name}]. (View: ...)
ログイン後にコピー

解決策は、action を使用するときに対応する応答を渡すことです。 () 関数を使用して URL を生成します。パラメータ:

<a href="{{ action(&#39;ProductController@show&#39;, [$product->id, $product->name]) }}">商品详情</a>
ログイン後にコピー

summary

上記の紹介を通して、Laravel ルーティング パラメータの使用方法は非常に簡単であることがわかりますが、実際に使用すると若干の問題が発生します。そのため、エラーや機能異常を避けるために、コードを記述する際にはパラメータの受け渡し方法や受け渡したパラメータが正しいかどうかを確認することに注意する必要があります。

以上がlaravelルートでパラメータを渡すときにエラーが発生した場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート