【问题标题】:load the view using anchor tag to created route使用锚标签加载视图以创建路线
【发布时间】:2017-08-08 06:47:44
【问题描述】:

在提问之前我已经阅读了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 不断变化。

我正在加载视图有问题吗?或者要使用我必须使用重定向的路线?

【问题讨论】:

    标签: php codeigniter routes


    【解决方案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";
    

    【讨论】:

    • 感谢您的回答,先生会尝试并回复您结果。再次感谢。
    • 对不起,先生,我已经编辑了问题,我忘记在我想要的 url 中添加 application_title。 @AbdullaNilam
    • app_job是控制器名称,函数名称是view_single_job
    • Sir application title 是应用程序更改时将更改的每个应用程序的标题。
    • 没有得到什么
    【解决方案2】:

    这样试试

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

    但我不明白你为什么要在点击标签时尝试加载这样的视图给控制器的链接使用site_url('controllername/function name')

    【讨论】:

    • 先生,我找不到页面
    【解决方案3】:

    尝试定义路线:

    $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。

    【讨论】:

    • 感谢您的回答,先生会尝试并回复您结果。再次感谢。
    • 没问题,我刚刚检查了你更新的问题,试试这个解决方案,让我知道这是否是你需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    相关资源
    最近更新 更多