我在codeigniter中遇到了一个问题。
当我通过这样的表格时:
<form name ="register" action="home/register" method="post">
</form>
会产生错误:
找不到对象。
但是当我通过这样的表格时:
<form name ="register" action="index.php/home/register" method="post">
</form>
它对我来说非常有用。
我应该做些什么更改才能在不通过index.php的情况下工作?
答案 0 :(得分:4)
修改项目根目录中的.htaccess文件。
RewriteEngine on
# Hide the application and system directories like Javascript and CSS
RewriteCond $1 !^(index\.php|[Javascript / CSS]|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
答案 1 :(得分:1)
<form name ="register" action="<?php echo base_url()."home/register";?> method="post">
</form>
答案 2 :(得分:0)
如果要从URL中删除index.php,可以创建.htaccess文件(http://ellislab.com/codeigniter/user-guide/general/urls.html)
默认情况下,index.php文件将包含在您的网址中:
example.com/index.php/news/article/my_article 您可以使用带有一些简单规则的.htaccess文件轻松删除此文件。这是一个例子&gt;这样一个文件,使用“否定”方法,其中除指定的&gt;之外的所有内容都被重定向。项目:
RewriteEngine on RewriteCond $ 1!^(index.php | images | robots.txt) RewriteRule ^(。*)$ /index.php/$1 [L] 在上面的示例中,除了index.php,images和robots.txt之外的任何HTTP请求都是 作为index.php文件的请求处理。
或者,有两种方法可以做到。
表单助手
CodeIgniter有一个内置的Form Helper来创建表单标签:form_open()。 http://ellislab.com/codeigniter/user-guide/helpers/form_helper.html
网址助手
CodeIgniter有一个内置的URL Helper来自动化URL路径:site_url()。 http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html
答案 3 :(得分:0)
在codeigniter中有一个名为site_url的辅助函数(“controller / action / arg1 /../ argn”)
对于你的情况,它应该是
<form name ="register" action="<?php echo site_url("home/register") ?>" method="post">
</form>
有关详细信息,请点击此链接
http://ellislab.com/codeigniter%20/user-guide/helpers/url_helper.html
答案 4 :(得分:0)
您可以像这样传递链接,并且它完全适用于我的代码
<form name ="register" action="<?php cho base_url()?>home/register" method="post">
</form>
记住必须在您的域或服务器地址中设置config base_url路径,并在htaccess中定义clear。
谢谢