Jas*_*nNZ 73 php routing laravel laravel-3 laravel-routing
我刚刚开始学习Laravel框架,我遇到了路由问题.
唯一有效的路线是开箱即用的Laravel附加的默认本地路由.
我在Windows上使用WAMP,它使用PHP 5.4.3和Apache 2.2.22,我也启用了mod_rewrite,并从application.php配置文件中删除了'index.php'以留下空字符串.
我创建了一个名为User的新控制器:
class User_Controller extends Base_Controller {
public $restful = true;
public function get_index()
{
return View::make('user.index');
}
}
Run Code Online (Sandbox Code Playgroud)
我在application/views/user /中创建了一个视图文件,名为index.php,带有一些基本的HTML代码,在routes.php中我添加了以下内容:
Route::get('/', function () {
return View::make('home.index');
});
Route::get('user', function () {
return View::make('user.index');
});
Run Code Online (Sandbox Code Playgroud)
http://localhost/mysite/public
在我的Web浏览器中访问root()时,第一条路径工作正常,但是当我尝试转到第二条路径时,http://localhost/mysite/public/user
我收到404 Not Found错误.为什么会这样?
小智 99
在我的Ubuntu LAMP安装中,我通过以下2个更改解决了这个问题.
sudo a2enmod rewrite
.AllowOverride All
然后重启Apache服务器: service apache2 restart
小智 63
使用WAMP单击wamp图标 - > apache-> apache modules-> scroll并检查rewrite_module重新启动LoadModule rewrite_module
注意,一旦启用"rewrite_module",服务器应用程序就会自动重启
小智 35
你有没有试过检查一下
http://localhost/mysite/public/index.php/user
Run Code Online (Sandbox Code Playgroud)
工作?如果是这样,那么请确保所有路径的文件夹没有任何大写字母.我有同样的情况,并将信件转换为小写有帮助.
Pap*_*urf 22
您是否尝试过将其添加到路径文件中Route::get('user', "user@index")
?
之前的一段文字@
,user
在这种情况下,直接将网页的用户控制器和之后的一段文字@
,index
将直接脚本的user
功能public function get_index()
.
我看到你正在使用$restful
,在这种情况下你可以设置你Route
的Route::any('user', 'user@index')
.这将同时处理POST
和GET
,而不是单独写他们两个.
我使用EasyPHP遇到了同样的问题.发现我必须AllowOverride All
在我的<Directory>
块中指定httpd.conf
.没有这个,Apache有时会忽略你的.htaccess
.
我最终看起来像这样......
<Directory "D:/Dev">
Options FollowSymLinks Indexes
#### NEXT IS THE CRUCIAL LINE ####
AllowOverride All
Order deny,allow
Allow from 127.0.0.1
Deny from all
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
你可以尝试移动root/public/.htaccess
到root/.htaccess
它应该工作
路线
使用它们来定义不由控制器管理的特定路由.
控制器
当您想使用传统的MVC架构时,请使用它们
解决您的问题
除非您想要控制器操作的特定"命名"路由,否则不会将控制器注册为路由.
而不是为您的控制器操作创建路由,只需注册您的控制器:
Route::controller('user');
Run Code Online (Sandbox Code Playgroud)
现在你的控制器被注册,您可以导航到http://localhost/mysite/public/user
你的get_index
将会运行.
您还可以一次注册所有控制器:
Route::controller(Controller::detect());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
127851 次 |
最近记录: |