tutorial CodeIgniter: কীভাবে কন্ট্রোলার, অ্যাকশন, URL তথ্য পেতে হয়




codeigniter tutorial (9)

ইউআরএল এর শেষ অংশ সবসময় কর্ম হতে হবে। এই মত পেতে দয়া করে:

$this->uri->segment('last_segment');

আমার এই ইউআরএল আছে:

কিভাবে এই URL থেকে কন্ট্রোলার নাম, কর্ম নাম পেতে। আমি CodeIgniter নবাগত নই। এই তথ্য পেতে কোন সাহায্যকারী ফাংশন আছে

উদা:

$params = helper_function( current_url() )

যেখানে $params মত কিছু হয়ে যায়

array (
  'controller' => 'system/settings', 
  'action' => 'edit', 
  '...'=>'...'
)

একটি সংযোজন হিসাবে

$this -> router -> fetch_module(); //Module Name if you are using HMVC Component

আপনি ইউআরআই ক্লাস ব্যবহার করতে পারেন:

$this->uri->segment(n); // n=1 for controller, n=2 for method, etc

আমি নিম্নলিখিত কাজ বলা হয়েছে, কিন্তু বর্তমানে পরীক্ষা করতে অক্ষম:

$this->router->fetch_class();
$this->router->fetch_method();

কন্ট্রোলার ক্লাস কোনো ফাংশন কাজ করছে না।

তাই আমি আপনাকে নিম্নলিখিত স্ক্রিপ্ট ব্যবহার করার সুপারিশ

global $argv;

if(is_array($argv)){
    $action = $argv[1];
    $method = $argv[2];
}else{
    $request_uri = $_SERVER['REQUEST_URI'];
    $pattern = "/.*?\/index\.php\/(.*?)\/(.*?)$/";
    preg_match($pattern, $request_uri, $params);
    $action = $params[1];
    $method = $params[2];
}

যদি আপনি এটি ব্যবহার করেন-> uri-> সেগমেন্ট, যদি url পুনর্লিখনের নিয়ম পরিবর্তন হয় তবে সেগুলির নাম মিললেই হারিয়ে যাবে।


$this->router->fetch_class(); 

// fecth ক্লাসের নিয়ামক শ্রেণী $ এই-> রাউটার-> fetch_method ();

// পদ্ধতি


হালনাগাদ

উত্তর যোগ করা হয়েছে 2015 এবং নিম্নলিখিত পদ্ধতি এখন অবচিত হয়

$this->router->fetch_class();  in favour of  $this->router->class; 
$this->router->fetch_method(); in favour of  $this->router->method;

হাই আপনি নিম্নলিখিত পদ্ধতি ব্যবহার করা উচিত

$this->router->fetch_class(); // class = controller
$this->router->fetch_method(); // action

এই উদ্দেশ্যে কিন্তু এটি ব্যবহার করার জন্য আপনাকে CI_Controller থেকে আপনার হুক প্রসারিত করতে হবে এবং এটি একটি যাদুমন্ত্রের মত কাজ করবে, আপনাকে uri অংশগুলি ব্যবহার করতে হবে না


অন্য উপায়

$this->router->class

ক্লাস বা লাইব্রেরি কোথাও এই কোড ব্যবহার করুন

    $current_url =& get_instance(); //  get a reference to CodeIgniter
    $current_url->router->fetch_class(); // for Class name or controller
    $current_url->router->fetch_method(); // for method name