自定义个人资料URL Codeigniter

4
我尝试创建自定义的个人资料网址,如site/u/username。 我找到了这个链接如何在CodeIgniter中制作/url/username?但是直到现在还是显示404错误。当我尝试访问site/u/username时。
我的routes.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');
    }
}
2个回答

3

路由.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。 - Yudhistira Bayu
抱歉,我忘记加载我的模型了。这解决了我的问题,谢谢! - Yudhistira Bayu
你是不是想说 $route['u/(:any)'] = 'u/showuserinfo/$1'; - Tpojka

1
$route['404_override'] = 'controller name';

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接