这是我在这里的第一个问题所以请善待!我是第一次设置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的新手,答案可能很简单,但我真的很感激帮助!
答案 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>