Gau*_*mar 3 php laravel laravel-routing laravel-5
我是 Laravel 的新手。我试图通过将控制器放入文件夹中来组织控制器,但它似乎不起作用。
我的文件夹结构是这样的:
/app
/Http
/Controllers
/Admin
ShowDashboard.php
Run Code Online (Sandbox Code Playgroud)
我的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!';
}
}
Run Code Online (Sandbox Code Playgroud)
我的路线是这样的
Route::get('/admin', 'Admin\ShowDashboard@init');
Run Code Online (Sandbox Code Playgroud)
当我尝试访问http://localhost:8000/admin时,出现以下错误:
类App\Http\Controllers\Admin\ShowDashboard不存在
我的自动加载器部分:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
小智 5
创建控制器的最佳方法是使用内置的 Laravel 实用程序 Artisan。从命令提示符中,浏览到 laravel 项目所在的目录。例如:c:\development\htdocs\www.example.dev
在提示符下,输入:php artisan make:controller admin/showDashboard --plain
这将在控制器下的 admin 目录中生成一个名为 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
{
//
}
Run Code Online (Sandbox Code Playgroud)
现在您已经创建了控制器,添加一个 init 方法:
public function init()
{
return 'Hi there!';
}
Run Code Online (Sandbox Code Playgroud)
你的控制器现在看起来像这样:
<?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!';
}
}
Run Code Online (Sandbox Code Playgroud)
现在,在 paths.php 中设置路由,如下所示:
route::get('admin', 'admin\showDashboard@init');
Run Code Online (Sandbox Code Playgroud)
保存您的工作,然后启动您的页面。当浏览到 www.example.dev/admin 时,您应该看到以下消息:嗨!
我希望这有帮助!
| 归档时间: |
|
| 查看次数: |
7141 次 |
| 最近记录: |