基本路由在 Laravel 中生成 404

Posted

技术标签:

【中文标题】基本路由在 Laravel 中生成 404【英文标题】:Basic routing generates a 404 in Laravel 【发布时间】:2012-09-14 22:37:12 【问题描述】:

我正在尝试使用 Laravel 框架来构建我的应用程序。但是,我遇到了路由问题。

路线

Route::get('ecatalogs', 
    array('as' => 'ecatalog_latest', 'uses' => 'ecatalogs@latest'));

控制器

class Catalogs_Controller extends Base_Controller

    public $restful = true;

    public function get_latest()
    
        return "wohoooooo!";
    

我的 localhost 文件存储在 /Users/ariefbayu/Sites/ 中,我的 Laravel 应用程序存储在 /Users/ariefbayu/Sites/ecatalog/ 中。在这个目录中,我有一个 info.php 文件来确认我的路径设置是否正常工作,并且它们确实有效。但是,当我导航到 http://localhost/ecatalog/public/index.php/ecatalogs 时,它总是返回 404 错误。我知道这是基本的,但我不知道为什么这不起作用。

仅供参考,我使用的是 MAMP 服务器,并且我已将所有源文件的访问权限设置为 777 以测试这是否是权限问题。

【问题讨论】:

【参考方案1】:
Route::get('ecatalogs', array('as'=>'ecatalog_latest', 'uses'=>'ecatalogs@latest'));

注意ecatalogs@latest 指针。这告诉 Laravel 在 Ecatalog_Controller 上调用 get_latest() 方法。

这是你的控制器Catalogs_Controller 和函数get_latest()。你需要用这个来打电话给get_latest()

Route::get('ecatalogs', array('as'=>'ecatalog_latest', 'uses'=>'catalogs@latest'));

【讨论】:

【参考方案2】:

您指定要在控制器ecatalogs 中调用“最新”操作,但您的控制器实际上称为catalogs。将您的 uses 参数改为 catalogs@latest(或重命名文件和类)。

【讨论】:

以上是关于基本路由在 Laravel 中生成 404的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 路由问题:自动重定向到根文件夹

Laravel 路由中的 IP 地址显示 404

Laravel 重定向到一个路由,但是 apache 给出 404 错误

Laravel 6 在注册过程中生成用户名

来自 jquery 的 sourceMappingURL 在 apache 中生成 404 错误

laravel 路由和 404 错误