找不到codeigniter 404页面试图查看一个项目

时间:2015-04-04 04:54:36

标签: php codeigniter routing

这是我在这里的第一个问题所以请善待!我是第一次设置Codeigniter程序,当我的索引视图正常工作时,我无法使单个视图页面正常工作。它返回404页面未找到错误。

我的foreach中的代码用于指向我认为url应该位于的位置的索引视图:

<a href=<?= site_url("kittens/view/" . $item->id)?>>Details</a>

如果我点击id为1的小猫,这会将我带到localhost:8888 / index.php / kittens / view / 1.但是我收到404错误。

以下是视图的控制器功能:

  function view(){
  $this->load->model("kittensmodel");
  $this->load->view('_header');
  $this->load->view('detailview', $data);
  $data['kitten_item']= $this->kittensmodel->details();

  }

这是我模型中的功能:

 function details(){
  $id = $this->url->segment(3);
  $this->db->select('*')
           ->from('kittens')
           ->where('id', $id);
  $data = $this->db->get();
  return $data->result();

 }

我的detailview文件就是这样,来测试它:

<?php
  print_r($kitten_item);
?>

我一直在玩这条路线但是没有运气好。这就是我现在所拥有的:

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['kittens/(:any)'] = 'kittencontroller/view/$1';

我是php和codeigniter的新手,答案可能很简单,但我真的很感激帮助!

4 个答案:

答案 0 :(得分:0)

尝试使用此链接

<a href=<?= site_url("kittens/".$item->id)?>>Details</a>

答案 1 :(得分:0)

我认为这是因为您的网站uri链接应该是base_url和

<a href="<?php echo base_url('kittens'.'/'. $this->url->segment(3))?>">Details</a>

<a href=<?= base_url("kittens" .'/'. $this->url->segment(3))?>>Details</a>

<强>路线:

$route['kittens/(:any)'] = 'folder/controller-name/$1';

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

$route['kittens/(:any)'] = 'folder/controller-name/index/$1';

$route['kittens/(:any)'] = 'controller-name/index/$1';

始终确保您的链接符合您设置的路线。

答案 2 :(得分:0)

试试吧

<a href=<?= site_url("kittens/view?q=" . $item->id)?>>Details</a>
控制器中的

 function view(){
  $q = $this->input->get('q',True);
  $this->load->model("kittensmodel");
  $data['kitten_item']= $this->kittensmodel->details($q);
  $this->load->view('_header');
  $this->load->view('detailview', $data);

  }

在模型中

 function details($q){
  $this->db->select('*')
           ->from('kittens')
           ->where('id', $q);
  $data = $this->db->get();
  return $data->result();

 }

and detailview

<?php
  print_r($kitten_item);
?>

答案 3 :(得分:0)

如果你的Controller实际上叫做kittenscontroller,那么你的路线应该是

$route['kittens/(:any)'] = 'kittenscontroller/view/$1';
如果您的控制器不存在,

CI将生成404 Page Not Found。

我注意到你在其他地方使用复数kittensxxxx,除了在上面的路线中使用的控制器。

您应该始终通过手动输入实际网址来检查此类事情。

如果您打算使用该路线,那么您的链接应该变为

<a href="<?= site_url("kittens/" . $item->id)?>">Details</a>