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

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

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

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

Blade

Bladeとは、 PHPフレームワークのLaravelで使用することができるテンプレートエンジンです。テンプレートの継承とエスケープ機能を提供します。

Q&A

解決済

1回答

877閲覧

blade上でURLの複数パラメータを値があるときのみ設定したい

jem32o

総合スコア79

Laravel

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

Blade

Bladeとは、 PHPフレームワークのLaravelで使用することができるテンプレートエンジンです。テンプレートの継承とエスケープ機能を提供します。

0グッド

0クリップ

投稿2022/11/24 12:35

前提

laravelを使用しています。

実現したいこと

下記の場合、「$q」と「$a」それぞれ値があるときパラメータを設定したい場合、条件分岐で現在やっていますが、パラメータを増やした場合、elseifがどんどん増えてしまうためもっと簡潔にパラメータの設定する方法はあるのでしょうか?

php

1public function index(Request $request) 2{ 3 $q = ""; 4 5 if (isset($request['q'])) 6 { 7 $q = $request['q']; 8 } 9 $a = ""; 10 if (isset($request['a'])) 11 { 12 $a = $request['a']; 13 } 14 return view('index', compact('q', 'a')); 15} 16

index.blade.php

1@if ($q != "" and $a != "") 2 <a href="{{ route( 'index'],['q'=>$q, 'a' => $a]) }}"> 3@elseif ($q != "" and $a == "") 4 <a href="{{ route( 'index' ,['q'=>$q]) }}"> 5@elseif ($q == "" and $a != "") 6 <a href="{{ route( 'index' ,['a'=>$a]) }}"> 7@else 8 <a href="{{ route( 'index') }}"> 9@endif

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

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

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

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

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

guest

回答1

0

ベストアンサー

$request->only(); を使ってリクエスト配列を取得する方法ではどうでしょうか。

コントローラ

PHP

1public function index(Request $request) 2{ 3 $params = $request->only('q', 'a'); 4 return view('index', compact('params')); 5}

index.blade.php

PHP

1<a href="{{ route('index', $params) }}">

参考:
https://readouble.com/laravel/9.x/ja/requests.html#retrieving-a-portion-of-the-input-data

投稿2022/12/02 23:01

Eggpan

総合スコア2727

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

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

jem32o

2022/12/03 13:16

$request->only(); というやり方があるんですね 参考になりました ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問