CodeIgniter4でGET / POSTパラメータの受け取りとルーティング設定方法
CodeIgniter4.4.4でページを開いた際にGET / POSTパラメータを受け取りたい。また、それとは別に「https://test.com/product/detail/123/」のようなURLの場合に「123」部分をGETパラメータとして取得したい(ルーティング設定)。以下に対応方法をメモ。
リファレンス
GET / POSTパラメータの受け取り
https://ci-trans-jp.gitlab.io/user_guide_4_jp/incoming/incomingrequest.html#retrieving-input
ルーティング設定
https://ci-trans-jp.gitlab.io/user_guide_4_jp/general/routing.html
各種ソースコード
Routes.php
$routes->add('/product', 'Product::index'); $routes->add('/product/detail/(:num)', 'Product::detail/$1');
Controllers
<?php namespace App\Controllers; class Product extends BaseController { public function index() { //パラメータ受け取り var_dump($this->request->getPost('param')); var_dump($this->request->getGet('param')); $data = [ 'page_title' => 'product', ]; echo view('template/header'); echo view('product', $data); echo view('template/footer'); } public function detail(...$params) { //パラメータ受け取り var_dump($params); $data = [ 'page_title' => 'product_detail', ]; echo view('template/header'); echo view('product_detail', $data); echo view('template/footer'); } }
所感
ルーティング設定の方は受け取りが以下のような形となり、キーは指定できないのがちょっと微妙。
array(1) { [0]=> string(3) "123" }
「https://test.com/product/detail/【カテゴリー名】/【商品ID】/」みたいな多重階層の場合にキーが指定できないと怖いような気がする。
関連記事
-
Codeigniter4でエラーログ設定、出力及び確認方法
Codeigniter4.4.4でエラーログの設定を行い特定のファイルに出力させ ...
-
Codeigniter4で外部ファイル(CSS / JS)の読み込みと共通パーツ化する方法
Codeigniter4.4.4でCSS及びJavaScriptファイルを設置し ...
-
CodeIgniter4でCronを実行する方法
CodeIgniter4.4.4で特定の処理をCronで自動実行させたい。以下に ...
-
Codeigniter4でMySQLに接続しCRUD操作する方法
Codeigniter4.4.4でMySQLに接続しCRUD操作したい。また、任 ...
-
CodeIgniter4&Bootstrap&jQueryで簡易版お問い合わせページの作成
CodeIgniter4.4.4&Bootstrap&jQuer ...