我目前正在学习CI,我遇到了一个我似乎无法解决的问题。
我在一个驱动器中设置我的wamp服务器,在www(root)文件夹中我已经解压缩了codeigniter文件。 ![例] [1] [1]:http://i.stack.imgur.com/7RKqG.png
然后我为视图/模型和控制器创建了我的php文件,并在config / routes.php中设置了默认路由
所以现在当我进入我的浏览器并键入localhost时,我显示的post.php没有任何问题。
但我无法从此处访问任何视图。例如,我有一个new_post.php视图,当我输入地址栏localhost / new_post.php时,我得到一个“未找到
在此服务器上找不到请求的URL /new_post.php。“错误。
我在做错了什么?下面我发布了我在post.php控制器中编写的代码以及我拥有的文件结构/名称的图像。posts.php - controller
<?php
class Posts extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('post'); //loads the post model u created in the models folder
}
function index() //goes to this function 1st when u access the controller
{
$data['posts']=$this->post->get_posts(); // load all the data from the get_posts function in post model to the data array posts
$this->load->view('post_index', $data); //loads the view
}
function post($postID)
{
$data['post']=$this->post->get_post($postID);
$this->load->view('post', $data);
}
function new_post()
{
if($_POST)
{
$data=array(
'title'=> $_POST['title'],
'post'=> $_POST['post'],
'active' =>1
);
$this->post->insert_post($data);
redirect(base_url(). 'posts/');
}
else
{
$this->load->view('new_post');
}
}
function editpost($postID)
{
$data['success']=0;
if($_POST)
{
$data_post=array(
'title'=> $_POST['title'],
'post'=> $_POST['post'],
'active' => 1
);
$this->post->update_post($postID,$data);
$data['success'] =1;
}
$data['post']=$this->post->get_post($postID);
$this->load->view('edit_post',$data);
}
function deletepost($postID)
{
$this->post->delete_post($postID);
redirect(base_url(). 'posts/');
}
}
![结构] [1] [1]:http://i.stack.imgur.com/SnsbW.png
答案 0 :(得分:0)
在CodeIgniter中,一切都通过主&#34; index.php&#34;文件,在根目录中。
所以,你会像这样访问你的新帖子页面;
http://localhost/index.php/posts/new_post
阅读CodeIgniter用户指南,它将回答您遇到的任何问题。
答案 1 :(得分:0)
在CodeIgniter中,您必须使用控制器来访问其功能
你说的是“当我输入地址栏localhost / new_post.php我得到一个Not Found”因为你试图直接访问它的函数名你必须使用example.com/controllername/functionname这样
http://localhost/posts/new_post
有关更多信息,请查看codeignier网址
https://ellislab.com/codeigniter/user-guide/general/urls.html
如果您没有使用.htaccess删除index.php,那么您必须使用这样的网址
http://localhost/index.php/posts/new_post