如何在控制器中创建目录 - laravel
Posted
技术标签:
【中文标题】如何在控制器中创建目录 - laravel【英文标题】:how to make a directory in controller - laravel 【发布时间】:2016-11-09 15:45:45 【问题描述】:我在Controller
目录中创建了一个Panel
目录。
AdminController.php
内部有一个login
函数
class AdminController extends Controller
//
public function login()
return 'test';
在routes.php
我写了这样一条路线:
Route::get('/cp/login','Panel\AdminController@login');
但是当我在 url 下运行时,我收到了一些错误,表明该控制器不存在:
http://localhost:8000/cp/login
Route.php 第 280 行中的反射异常:类 App\Http\Controllers\Panel\AdminController 不存在
【问题讨论】:
可能是 laravel 没有更新 autoloder。你跑composer dump-autoload
了吗?
尝试将控制器命名空间设置为 App\Http\Controllers\Panel
尝试运行 composer dump-autoload
***.com/questions/18850542/… 勾选这个你会得到你的解决方案
@Pardeep Pathania 我使用了dump-autoload
,但不起作用
【参考方案1】:
您应该将命名空间添加到控制器
将命名空间更改为
命名空间 App\Http\Controllers\Panel;
Laravel 将根据您的名称间距而不是您的目录结构来解析控制器。
【讨论】:
【参考方案2】:尝试将适当的命名空间添加到 AdminController
文件的顶部,您还需要为其扩展的 Controller
类指定命名空间,因为它们位于不同的子命名空间下。
您可以在此处http://www.php-fig.org/psr/psr-4/ 阅读有关 PSR-4 自动加载的更多信息。
根据您应该阅读的目录结构
<?php
namespace App\Http\Controllers\Panel
use App\Http\Controllers\Controller;
class AdminController extends Controller
//..
【讨论】:
你的答案是对的,但你必须添加这一行:use App\Http\Controllers\Controller;
以上是关于如何在控制器中创建目录 - laravel的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 Laravel 8.1 中创建一个普通控制器(--plain 在新版本中不存在)[关闭]
如何使用 Artisan 命令 (PHP) 在 Laravel 5.2 中创建 RESTful 资源控制器
如何使用一个命令在 laravel 中创建所有三个文件(控制器、模型和数据库迁移文件)