おーしまブログ

プログラミングやってます

【laravel】aタグにパラメータを付ける

こんにちは、おーしまです。

今回は、HTMLのaタグにパラメータを付与する方法について書きます。


基本的に、HTTPメソッドはGETでのやり方です。
aタグでPOST通信をする方法もあるようですが、今回は勘弁してください。



laravelでは、bladeファイルを使っていろいろな書き方があります。

ルーティング(web.php

Route::get('manage/admin/car/list', 'Manage/Admin/CarController@list')->name('manage.admin.car.list');
Route::get('manage/admin/car/{car}/detail', 'Manage/Admin/CarController@detail')->name('manage.admin.car.detail');

上に、2つのルーティングを用意しました。
おそらく、laravelを使って書かれるプログラムのほとんどは、このようなルーティングを書くと思います。

2つの大きな違いとしては、urlにパラメータがあるかないかです。



まずは、urlにパラメータがない場合

Route::get('manage/admin/car/list', 'Manage/Admin/CarController@list')->name('manage.admin.car.list');
<a href={{ route('manage.admin.car.list', ['car_name' => 'スープラ']) }}>車の名前は「スープラ」</a>

私はこのような書き方をしています。

<a href={{ action('Manage\Admin\CarController@list', ['car_name' => 'スープラ']) }}>車の名前は「スープラ」</a>

このような書き方でもできます。

<a href={{ action('Manage\Admin\CarController@list', ['car_name' => 'ランクル', 'car_body' => 'SUV']) }}>ランクルはSUV</a>

パラメータを増やすこともできます。





次に、urlにパラメータがある場合

Route::get('manage/admin/car/{car}/detail', 'Manage/Admin/CarController@detail')->name('manage.admin.car.detail');
<a href={{ route('manage.admin.car.detail', ['car' => '1']) }}>詳細画面</a>

urlの「car」をキーとしてあげると、urlに「1」を入れることができます。

<a href={{ route('manage.admin.car.detail', '1') }}>詳細画面</a>

省略もできますし、、

<a href={{ route('manage.admin.car.detail', $car->id) }}>詳細画面</a>

変数も使えます。

<a href={{ route('manage.admin.car.detail', ['car' => '1', 'car_maker' => 'トヨタ']) }}>詳細画面</a>

こちらも複数、パラメータをセットできます。





今回はここまでです。
それでは、また。

ここはどこ おれはだれ それに近いものがあんだよ 始めようとした奴らも迷い始めてる 怖がらせないでよ そりゃ甘くはないけど まだまだ 夢見ていい世界なんでしょ {UVERwould「ハイ!問題作」}