こんにちは、おーしまです。
今回は、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>
こちらも複数、パラメータをセットできます。
今回はここまでです。
それでは、また。