【问题标题】:Custom Profile URL Codeigniter自定义配置文件 URL Codeigniter
【发布时间】:2016-10-25 07:27:01
【问题描述】:

我正在尝试创建自定义配置文件 URL,例如 site/u/username 我找到了这个How to make url /username in codeigniter?

但直到现在它仍然显示 404。当我尝试访问站点/u/用户名时

我的路线.php

$route['default_controller'] = "guest";
$route['404_override'] = 'u';

我的模型

   function cekuser($username)
   {
    $query = $this->db->query("SELECT * FROM usertable WHERE username = '$username'");
        $query = $query->result_array();
        if($query){
            return $query[0];
        };
   }

我的控制器

<?php class U extends CI_Controller {
    public function __construct() {
            parent::__construct(); 
    }

    public function index()
    {
        $username = $this->uri->segment(1);

        if (empty($username)) {
            $this->show_404();
        }

        $this->load->model('m_login');

        // Check if parameter is not a valid username.
        if (!$this->m_login->cekuser($username)) {
            $this->displayPageNotFound();
        } else { 
            $this->load->view('template');
        }
    }

    protected function displayPageNotFound() {
        $this->output->set_status_header('404');
        $this->load->view('notfound');
    }
}

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    route.php

    而不是$route['404_override'] = 'u';

    添加

    $route['u/(:any)'] = 'u/showuserinfo';
    

    在控制器中

    添加方法

    function showuserinfo($name)
    {
     $this->load->model('m_login');
      if (empty($name))
      {
            $name = $this->uri->segment(2);
      }
      $user = $this->m_login->cekuser($name);
      if (!empty($user))
      {
            $this->load->view('template', $user);
      }
      else
      {
            echo 'User Not found';
      }
    }
    

    【讨论】:

    • 致命错误:在非对象上调用成员函数 cekuser()。未定义的属性:U::$m_login。 U::showuserinfo() 缺少参数 1
    • 抱歉,我忘记加载我的模型了。这解决了我的问题,谢谢!
    • 你的意思是$route['u/(:any)'] = 'u/showuserinfo/$1';
    【解决方案2】:
    $route['404_override'] = 'controller name';
    

    添加

    $route['controller name/(:any)'] = 'controller name/any name';
    

    【讨论】:

      猜你喜欢
      • 2015-05-15
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-29
      相关资源
      最近更新 更多