Apache版本:Apache/2.4.4(Win32)OpenSSL/0.9.8y PHP/5.249
在控制器文件夹authors.php 中
<?php
class AuthorsController extends BaseController {
public $restful = true;
public function getIndex () {
return View::make('authors.index');
}
}
?>
在routes.php 中
<?php
//Route::get('authors', 'AuthorsController@getIndex');
Route::get('authors', array('uses' => 'authors@index'));
?>
当我尝试访问浏览器:localhost/laravel/public/its运行良好时,第一个页面显示:您已经到达。
但如果我试图在浏览器中传递参数authors:localhost/laraavel/public/authors
它的节目:哎呀,好像出了什么问题。laravel框架有什么问题?
提前感谢回复
修改
Route::get('authors', array('uses' => 'authors@index'));
至
Route::controller('/authors', 'AuthorsController');
使用controller
方法更强大,因为它允许您在控制器中使用get
和post
请求,同时保持routes.php
文件的干净。
我认为
composer dump-autoload
可能会有所帮助。
Route::get('/authors/', 'AuthorsController@index');
在AuthorsControllers 中
<?php
class AuthorsController extends BaseController
{
public function index()
{
return View::make('authors.index');
}
//some more function goes here
}
如果您仍然发现问题,请确保您有一个名为authors的文件夹打开app/storage/logs/laravel.log文件,清除并保存它,然后再次访问浏览器中的localhost/laravel/public/authors,然后在此处发布laravel.log的结果
更新:
问题是控制器文件夹中的文件名:将authors.php
重命名为AuthorsController.php
。
记住:控制器文件名必须与控制器类名本身匹配,这对于自动加载至关重要。例如:SomeController
必须位于SomeController.php
中,这适用于任何类,无论它是控制器还是其他类文件,对于laravel或任何其他框架(无论如何,这是唯一正确的方法)。
旧:
试试这个:
Route::get('public/authors', 'AuthorsController@getIndex');
同样的问题可能存在于您的url重写中,若您也可以显示它的话。
我想你现在刚刚安装了laravel。无论如何,请确保:文档根目录中包含.htaccess
文件,并将索引文件从public
文件夹移动到根目录,并相应地更改路径,在这种情况下为
Route::get('authors', 'AuthorsController@getIndex');
将起作用。