我刚刚开始构建Laravel应用程序并遇到路由问题。
这是我的路线档案:
<?php
Route::get('/', array(
'as' => 'index',
'uses' => 'IndexController@index'
));
Route::get('/account', array(
'as' => 'account',
'uses' => 'AccountController@get_create'
));
我的控制器看起来像这样:
<?php
class IndexController extends BaseController
{
public function index()
{
return View::make('index');
}
}
<?php
class AccountController extends BaseController
{
public function get_create()
{
return 'asd';
}
public function post_create()
{
}
}
这是我的错误:
Symfony\Component\HttpKernel\Exception\NotFoundHttpException thrown with message ""
Stacktrace:
#11 Symfony\Component\HttpKernel\Exception\NotFoundHttpException in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:5680
#10 Illuminate\Routing\RouteCollection:match in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:5004
#9 Illuminate\Routing\Router:findRoute in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:4992
#8 Illuminate\Routing\Router:dispatchToRoute in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:4984
#7 Illuminate\Routing\Router:dispatch in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:715
#6 Illuminate\Foundation\Application:dispatch in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:696
#5 Illuminate\Foundation\Application:handle in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:7744
#4 Illuminate\Session\Middleware:handle in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:8351
#3 Illuminate\Cookie\Queue:handle in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:8298
#2 Illuminate\Cookie\Guard:handle in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:10961
#1 Stack\StackedHttpKernel:handle in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:657
#0 Illuminate\Foundation\Application:run in C:\xampp\htdocs\Protosite\public\index.php:49
编辑:有一件事我忘了提,索引工作正常,这是错误的帐户页面。
我看过类似的问题,但由于某些原因,他们还没有解决。
干杯!
答案 0 :(得分:0)
听起来你的重写不起作用。如果您在index.php
之前向网址添加/account
吗?
例如,yourdomain.com/account
将成为yourdomain.com/index.php/account
如果您的重写不起作用,但.htaccess
目录中有public
文件,那么您可能需要在apache配置中允许覆盖。以下是XAMPP和Laravel的示例虚拟主机配置。
我已经标记了您需要更改的行。将第一个和第三个更改为指向您网站目录中的public
目录。然后将第二行更改为您在网站上使用的域名。
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/yourdomain/public" # Change this line
ServerName yourdomain.com # Change this line
<Directory "C:/xampp/htdocs/yourdomain/public"> # Change this line
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All # This line enables .htaccess files
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
您需要重新启动Apache才能使这些设置生效。