我是 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/