php - 如何将 Controller 放入 Laravel 5.1.3 的文件夹中?

标签 php laravel laravel-5 laravel-routing

我是 Laravel 新手。我试图通过将 Controller 放入文件夹中来组织 Controller ,但它似乎不起作用。

我的文件夹结构是这样的:

/app
    /Http
        /Controllers
            /Admin
                ShowDashboard.php

我的ShowDashboard.php文件是这样的:

<?php namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;

class ShowDashboard extends Controller {

    /**
     * Show the profile for the given user.
     *
     * @param  int  $id
     * @return Response
     */
    public function init()
    {
        return 'Hi there!';
    }

}

我的路线是这样的

Route::get('/admin', 'Admin\ShowDashboard@init');

当我尝试访问 http://localhost:8000/admin 我收到以下错误:

Class App\Http\Controllers\Admin\ShowDashboard does not exist

我的自动加载器部分:

"autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    }

我错过了什么吗?

最佳答案

创建 Controller 的最佳方法是使用内置的 Laravel 实用程序 Artisan。从命令提示符中,浏览到 laravel 项目所在的目录。例如:c:\development\htdocs\www.example.dev

在提示符下,输入:php artisan make:controller admin/showDashboard --plain

这将在 Controller 下的管理目录中生成一个名为 showDashboard.php 的文件。该文件默认包含以下代码:

<?php

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class showDashboard extends Controller
{
    //
}

现在您已经创建了 Controller ,请添加一个 init 方法:

public function init()
{
    return 'Hi there!';
}

你的 Controller 现在看起来像这样:

<?php

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class showDashboard extends Controller
{
    public function init()
    {
        return 'Hi there!';
    }
}

现在,在 paths.php 中设置路由,如下所示:

route::get('admin', 'admin\showDashboard@init');

保存您的工作,然后启动您的页面。当浏览到 www.example.dev/admin 时,您应该看到消息:嗨!

希望这会有所帮助!

关于php - 如何将 Controller 放入 Laravel 5.1.3 的文件夹中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31637961/

相关文章:

php - CSRF(跨站请求伪造)在 Laravel 中无法按预期工作

php - 在提交到数据库之前从字符串中提取信息

php - laravel 不上传图像到服务器上

php - 在路由中找不到 Laravel 包 Controller

validation - 使用 Flash 消息和自定义验证参数进行 Laravel 验证

php - 如何在 Laravel 5.2 中设置 Facades(在/app 之外)

php - 如何使用 laravel 5.1 使用更新记录的 user_id 填充 modded_by ?

php - 如何在 Laravel 的 Handler 渲染中捕获授权错误

php - MySQL 查询 - 如何获取相关标签的数量

php - 命令在 php 中恢复 mysql 数据库备份