https://medium.com/@naruapon/codeigniter-การส่งพารามิเตอร์ไปยัง-controller-2b0eeb9a295a

การส่งพารามิเตอร์ผ่าน URL ไปยัง Controller โดยส่งมากกว่า 1 ค่า

// application/controllers/Welcome.php

defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

    public function __construct() {
        parent::__construct();
    }

    // Method ที่รับพารามิเตอร์มากกว่า 1 ค่า
    public function example($param1, $param2) {
        echo "Parameter 1: " . $param1 . "<br>";
        echo "Parameter 2: " . $param2;
    }
}

การเรียกใช้งานใน URL

http://yourdomain.com/index.php/welcome/example/value1/value2

การตั้งค่า config/routes.php ข้อมูลที่ส่งมาเป็นอะไรก็ได้

$route['example/(:any)/(:any)'] = 'welcome/example/$1/$2';

เรียกใช้งานด้วย URL ที่สั้นลง

http://yourdomain.com/example/value1/value2

placeholder ที่เฉพาะเจาะจง

  • (:num) - ใช้สำหรับจับคู่กับค่าที่เป็นตัวเลขเท่านั้น
  • (:any) - ใช้สำหรับจับคู่กับค่าทุกประเภท (ใช้ได้ทั่วไปหากไม่ต้องการระบุรูปแบบ)
  • ([a-zA-Z]+) - ใช้สำหรับจับคู่กับตัวอักษรภาษาอังกฤษตัวใหญ่หรือตัวเล็กเท่านั้น
  • ([a-zA-Z0-9]+) - ใช้สำหรับจับคู่กับตัวอักษรและตัวเลขเท่านั้น

route

$route['default_controller'] = 'welcome';


$route['404_override'] = 'errors/page_missing'; 

ตัวอย่างข้อมูลที่ส่งมาต้องเป็นตัวเลช

route

$route['example/(:num)/(:num)'] = 'welcome/example/$1/$2'

Controller

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

    public function __construct() {
        parent::__construct();

    }

    public function example($param1, $param2) {
        echo "Parameter 1: " . $param1 . "<br>";
        echo "Parameter 2: " . $param2;
        

    }
}