使用锚标记加载视图以创建路径

时间:2017-08-08 06:47:44

标签: php codeigniter routes

在提问之前,我已阅读documentation。并且还访问了相关主题的问题,但我没有帮助。

这是我的锚标记:

<a href="<?= base_url() ?>controller/function/application_title/id">link</a>

示例:

<a href="<?= base_url() ?>app_job/view_single_job /inventory_control_supervisor/1">link</a>
<a href="<?= base_url() ?>app_job/view_single_job /waste_stream_coordinator/3">link</a>

这是控制器:

public function view_single_job($app_title){    
    $id = $this->uri->segment(4);

    $single_app = $this->app_model->get_single_app($id);        
    $this->load->view('app/single_app',['single_app'=>$single_app]);        
}

路线:

$route['(:any)/(:num)'] = "controller/function/$1/$2";

我想在点击锚标记时加载视图,并显示像

这样的网址
http://localhost/project/inventory_control_supervisor/1/
http://localhost/project/waste_stream_coordinator/3/

URL会根据应用程序ID不断更改。

我正在加载视图是一个问题?或者使用路线我必须使用重定向?

3 个答案:

答案 0 :(得分:1)

这是您在锚标记中的网址

<a href="<?= base_url() ?>controller/function/application_title/id">link</a>
                ^             ^         ^              ^         ^
            Base Path   Controller  Method      Argument 01    Argument 02
                            Name     Name

但是在您的控制器中,您只能检索一个public function view_single_job($app_title)

要捕获数据,请使用此

public function view_single_job($app_title,$id){ 
    echo $app_title;
    echo $id;

但您想要显示此类网址 http://localhost/project/application_title/1/

为此必须这样做

<a href="<?= base_url() ?>application_title/{id}">link</a>

要捕获此数据,请使用控制器

中的代码
public function view_single_job($id){ 
    echo $id;
    $single_app = $this->app_model->get_single_app($id);  

如果您需要删除控制器名称,请在路由中使用此

$route['application_title/(:num)'] = "app_job/view_single_job/$1";

答案 1 :(得分:0)

试试这个

<a href="<?php echo base_url('controller/function/$1/$2');?>"/>

但我不明白你为什么要点击标签加载这样的视图使用site_url('controllername/function name')

给控制器链接

答案 2 :(得分:0)

尝试定义路线:

$route['project/(:any)/(:num)'] = 'Controller/view_single_job/$1/$2';

view_single_job 您的函数名称

和Anchor标签一样:

<a href='<?=site_url('project/application_title/id'); ?>'>Link</a>

在你的控制器中将id作为你的第二个参数,如:

public function view_single_job($app_title,$id){ 
    echo $app_title;
    echo $id;
}

这将使您能够显示您的网址     http://localhost/project/inventory_control_supervisor/1/ 这里 inventory_control_supervisor 是您的application_title, 1 是id。