簡體   English   中英

如何從Codeigniter中的URL中刪除控制器?

[英]How to remove controller from url in codeigniter?

控制器:test.php的

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Test extends CI_Controller 
{
    function __construct() 
    {
        parent :: __construct();
        $this->load->helper(array('form', 'url', 'captcha', 'email', 'html'));
    }
    public function study_abroad()
    {
        $data['student_id'] = $this->session->userdata('student_id');
        $this->load->view('study-abroad',$data);
    }
}

視圖:

<a href="<?php echo base_url(); ?>study-abroad">Study Abroad</a>

route.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$route['default_controller'] = 'test';
$route['404_override'] = '';
$route['translate_uri_dashes'] = TRUE;

$route['(:any)'] = "colleges/index/$1";
$route['college/(:any)'] = "test/college/$1";
$route['study-abroad'] = "test/study_abroad";

在此代碼中,我創建了一個名稱為Test.php的控制器,並在其中加載了名稱為study-abroad的視圖文件。 現在,我想從我的URL中刪除控制器名稱,即Test。 我已經在路線文件中定義了出國留學的路徑,並從視圖文件中刪除了控制器名稱,但它會將我重定向到錯誤的頁面。 如果我將控制器名稱放在視圖文件之前,它將重定向我實際的頁面。 這是什么問題呢?

嘗試以下“完整路由”文件代碼:

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

$route['college/(:any)'] = "test/college/$1";
$route['study-abroad'] = "test/study_abroad";
$route['(:any)'] = "colleges/index/$1";

$route['default_controller'] = 'test';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

如所示, $route['(:any)']將匹配任何URL,因此將其他自定義路由放在其他路由之前

在視圖中調用路線:

<a href="<?= base_url('study-abroad') ?>">Study Abroad</a>

希望能幫助到你。

您可以在Code Igniter中為每個網址設置路由。 在您的config/routes.php文件中,像這樣設置每個頁面:

$route['study-abroad'] = "test/study_abroad";

希望對您有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM