Laravel路由不工作问题


Laravel Routing not working issue

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方法更强大,因为它允许您在控制器中使用getpost请求,同时保持routes.php文件的干净。

我认为

composer dump-autoload

可能会有所帮助。

routes.php 中的

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');

将起作用。