【问题标题】:How to Route Codeigniter with URI Segments there如何在那里使用 URI 段路由 Codeigniter
【发布时间】:2018-10-28 11:53:12
【问题描述】:

如何使用 codeigniter 中的段正确路由 url。 这是我的网址。

https://www.test.com/region/india/about/people/gaurav-Singh/1

这是我的路线

$route['region/india/about/people/(:any)/(:any)']  = "region/india/memberview/$1/$2";

这是我的控制器

public function memberview()
{
 $teamid = $this->uri->segment(5);      
 $data['view'] = 'region/india/team-member-view.php';
 $this->load->model('region/India_model');
 $data['team'] = $this->India_model->tmview($teamid);
 $this->load->view('region/layout', $data);
}

这是我的模特

public function tmview($teamid){

        $this->db->query("select * from ojiteam");
        $this->db->where('id',$teamid);
        $query = $this->db->get();
        return $query->result_array();

    }

在我看来,我正在显示数据

<?php echo $team['tmname'];?>

但它不工作,它显示 500 错误。

帮我解决这个问题。我已经搜索并通过了codeigniter,但无法解决这个问题。

【问题讨论】:

  • 打错了:应该是$this-&gt;uri-&gt;segment(6);
  • 不,它不工作,它返回 500 错误。
  • 500 错误表示服务器端有问题,查询是否返回了什么?另请阅读:codeigniter.com/userguide3/libraries/uri.html#CI_URI
  • 也许列 'id' 实际上是 'ID' ?还要检查echo $this-&gt;db-&gt;last_query();并查看查询在您的 PhpMyAdmin(或类似)中是否有效或失败
  • @Vickel - SELECT NAME, VALUE FROM TBLOPTIONS WHERE AUTOLOAD = 1 这是我在视图中查询时得到的响应

标签: codeigniter url-routing codeigniter-3


【解决方案1】:

根据您正在使用的环境 (see docs),您可以调试以找出导致此 500 错误的原因。通常这意味着您的代码有问题,您必须调试以找出该错误是从哪个文件和行生成的。

要在您的路由中使用数字,您应该这样做 (:num),这样在您的路由的那一部分 (see docs) 中只允许使用数字。

在控制器部分,您可以通过路由选项将变量传递给控制器​​,因此;

$route['region/india/about/people/(:any)/(:any)']  = "region/india/memberview/$1/$2";

public function memberview( $area, $teamid )
{
      // Your coding
      // $area now is; gaurav-Singh
      // $teamid now is; 1
}

这样您就不必担心需要使用 URL 的哪一部分,因为它已经全部设置好了。

【讨论】:

    猜你喜欢
    • 2013-06-19
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    相关资源
    最近更新 更多