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】/」みたいな多重階層の場合にキーが指定できないと怖いような気がする。
関連記事
-
-
CodeIgniter3で共通の変数と定数を設定する方法
CodeIgniter3系で共通する配列が入った変数と、定数を設定したかった。以 ...
-
-
CodeIgniter4でフォームからファイルをアップロードし保存する方法
CodeIgniter4.4.4でformから画像等のファイルをアップロードし、 ...
-
-
CodeIgniter4の各種設定項目のまとめ記事
CodeIgniter4.4.4の各種設定項目を後から確認できるようまとめておき ...
-
-
CodeIgniter4でのメール送信方法(テキスト・HTMLメール)
CodeIgniter4.4.4でテキストメール及びHTMLメールを送信したい。 ...
-
-
Codeigniter4で独自・外部ライブラリの作成と呼び出し方法
Codeigniter4で独自ライブラリを作成し、コントローラー側で呼び出したい ...