douhang8991 2019-02-23 05:51
浏览 66
已采纳

Codeigniter中的URI路由和参数

I am doing a project that when click the 'submit order' button, it will redirect to a successful message page. And the URL is [http://example.com/index.php/Ordering/Order] but I want the URL looks like [http://example.com/index.php/Ordering/Order/1], the number[1] is the id for order which is retrieve from database. Hope someone can helps me. Thank You.

Route.php:

$route['Ordering/Order/(:num)'] = 'Ordering/IdForRoute/$1';

Controller:

public function IdForRoute(){
    $data['id'] = $this->order->GetId($id);
 if (this->uri->segment(3) === FALSE){
    $data['id'] = 0;
 } else{
    $data['id'] = $this->uri->segment(3);
 }
}

Model:

public function GetId($id = 0){ 
   if ($id === 0) {
     $query = $this->db->get('order');
     return $query->result_array();
   }

   $query = $this->db->get_where('order', array('id' => $id));
   return $query->row_array();
}
  • 写回答

1条回答 默认 最新

  • dongmou1964 2019-02-23 06:48
    关注

    I think you should change your controller to this:

    public function IdForRoute(){
    
         if (this->uri->segment(3) === FALSE){
             $id = 0;
             $data['returnedvaluefrommodel'] = $this->order->GetId($id);
          } else{
             $id = $this->uri->segment(3);
             $data['returnedvaluefrommodel'] = $this->order->GetId($id);
    
         }
     }
    

    You can echo returnedvaluefrommodel on your view based on the returned value from your model.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失
  • ¥15 springboot+vue 集成keycloak sso到阿里云
  • ¥15 win7系统进入桌面过一秒后突然黑屏
  • ¥30 backtrader对于期货交易的现金和资产计算的问题
  • ¥15 求C# .net4.8小报表工具
  • ¥15 安装虚拟机时出现问题
  • ¥15 Selenium+docker Chrome不能运行
  • ¥15 mac电脑,安装charles后无法正常抓包
  • ¥18 visio打开文件一直显示文件未找到