teratail header banner
teratail header banner
質問するログイン新規登録

質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

パラメータ

関数やプログラム実行時に与える設定値をパラメータと呼びます。

Q&A

解決済

1回答

1779閲覧

laravelでGETパラメータの使い方

yoheiiii

総合スコア91

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

パラメータ

関数やプログラム実行時に与える設定値をパラメータと呼びます。

0グッド

0クリップ

投稿2021/08/07 12:39

編集2021/08/09 05:38

0

0

現在下記のような形で[コピー作成]ボタンを押すとクーポンコードとコピーフラグを送れるように
しております。問題なく動いているのですが、別の観点から/coupon/edit/xxxx?copy=1の形に変更
しなければいけないのですがやり方がわかりません。

【ルート】

Route::get('/coupon/edit/{coupon_code?}/{copy_flag?}', '○○@○○')->name('coupon.edit');

【ブレード】

<a href="{{ route('coupon.edit', [$row->coupon_code, 'copy_flag'=>'copy']) }}">コピー作成</a>

【コントローラー】

public function ○○( string $coupon_code = null, string $copy_flag = null ) {

やってみたこと
【ルート】

Route::get('/coupon/edit/{coupon_code?copy=1?}', '○○@○○')->name('coupon.edit');

【ブレード】

<a href="{{ route('coupon.edit', [$row->coupon_code, 'copy=1']) }}">コピー作成</a>

【コントローラー】

public function ○○( string $coupon_code = null, string $copy = null ) {

やったこと追記

Route::get('/coupon/edit/{coupon_code?}{copy=1?}', '○○@○○')->name('coupon.edit'); ページが見つかりません Route::get('/coupon/edit/{coupon_code?}/{copy=1?}', '○○@○○')->name('coupon.edit'); ページが見つかりません Route::get('/coupon/edit/{coupon_code?}{copy=1}', '○○@○○')->name('coupon.edit'); エラー:Missing required parameters for Route::get('/coupon/edit/{coupon_code?}copy=1', '○○@○○')->name('coupon.edit'); ページが見つかりません Route::get('/coupon/edit/{coupon_code?copy=1}', '○○@○○')->name('coupon.edit'); エラー:Missing required parameters for Route::get('/coupon/edit/{coupon_code?}{copy?}', '○○@○○')->name('coupon.edit'); できたが【copy=1】つかってないし初めとかわらない。。

ご教授お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

マニュアル内を検索してみましょう
以下引用

クエリ文字列からの入力の取得 inputメソッドはリクエストペイロード全体(クエリ文字列を含む)から値を取得しますが、queryメソッドはクエリ文字列からのみ値を取得します。 $name = $request->query('name'); 指定したクエリ文字列値データが存在しない場合、このメソッドの2番目の引数を返します。 $name = $request->query('name', 'Helen'); すべてのクエリ文字列値を連想配列として取得するために、引数なしでqueryメソッドを呼び出せます。 $query = $request->query();

投稿2021/08/07 13:09

hentaiman

総合スコア6428

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoheiiii

2021/08/09 01:11

ご回答ありがとうございます。 コントローラーでのイメージはつきました。 現状、コントローラーまでいっておりません。 コピーボタンではない通常ボタン押下時もURLは/coupon/editとなって いるのですが、ページが見つかりませんになってしまいます。(システム内のエラー) 他の書き方も試してみたのですが、laravelのエラーになってしまいますので書き方はあっていると 思っているのですが。。。。。
hentaiman

2021/08/09 01:34 編集

それはルーティングが合っていないからです ルーティングもちゃんと直しましょう 今のルーティングではedit/以下も指定しろって雰囲気のものになります そのルーティングの書き方自体も間違っているので、気持ちは分かるけど動きませんよって書き方ですけど 追記 下記がルーティングのサンプル群です  https://readouble.com/laravel/8.x/ja/routing.html まずは自力で確認して修正を試してください。恐らく数試すうちに何がNGか分かると思います どうしてもうまく行かなければ試したルーティングとその結果を質問に追記してください、相当の数になるとは思いますがちゃんと読みますので 追記する際は質問内容を修正して最下部にひたすら列挙してください
yoheiiii

2021/08/09 05:41

サンプルもありがとうございます。 色々ためしてみましたが、他の書き方がなかなか思い浮かばずです。。。 やったことは追記致しました。
hentaiman

2021/08/10 00:48

なぜそれを見て分からないのかと、どう説明すれば伝わるのか考えていたが分からないので、そのまんま書きますね > /coupon/edit/{coupon_code?}{copy=1} これは「copy=1」という変数名を使う事を想定した記述です おかしな記述だと分かり切っているので試した事もありませんからこの説明が正しいかどうか分かりませんけど 他のやつも大体似たような理由でしょう /coupon/edit/{coupon_code?} このように書いた場合、期待されるルーティング「https://localhost/coupon/edit/codexxx」になる事は分かりますね? そして「https://localhost/coupon/edit/codexxx?param1=x&param2=y」と書いた場合にルーティングに影響が無い事も分かりますね? この時にクエリーパラメーターを取得する方法がこの回答の内容です
yoheiiii

2021/08/10 02:04

ご丁寧にありがとうございます。 「https://localhost/coupon/edit/codexxx?copy=1」が目指すところとわかりました。 ブレードで下記に変更致しました。 <a href="{{ route('coupon.edit', [$row->coupon_code, $copy=1]) }}">コピー作成</a> ルーティングが上手くいきません。。 '/coupon/edit/{coupon_code??copy?}' '/coupon/edit/{coupon_code?}?{copy?}' などやっているのですが、理解が乏しく本当に申し訳ございません。。。
yoheiiii

2021/08/10 03:01

ブレード <a href="{{ route('coupon.edit', [$row->coupon_code]).'?copy=1'}}">コピー作成</a> ルート '/coupon/edit/{coupon_code?}' でできました。 色々とありがとうございました。
hentaiman

2021/08/10 05:29

いやいやそんな書き方しないでも 以下確認をおすすめします https://readouble.com/laravel/8.x/ja/routing.html 名前付きルートのURL生成 回答に書いた通りマニュアル読めばやりたい事の半分ぐらいはサンプルコード載ってると思うので困ったら隈なくマニュアル読んでみましょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問