【问题标题】:Namespace Laravel Installation命名空间 Laravel 安装
【发布时间】:2017-04-23 17:58:10
【问题描述】:

我刚刚在一个名为 blog1 的项目中的 xampp 下安装了 Laravel。文档说默认命名空间是 App。 我创建了以下控制器:

 namespace App\Http\Controllers;
 use App\User;
 use App\Repositories\UserRepository;
 use App\Http\Controllers\Controller;

 class UserController extends Controller
 {
  /**
  * The user repository implementation.
   *
   * @var UserRepository
  */
  protected $users;

/**
 * Create a new controller instance.
 *
 * @param  UserRepository  $users
 * @return void
 */
public function __construct(UserRepository $users)
{
    $this->users = $users;
}

/**
 * Show the profile for the given user.
 *
 * @param  int  $id
 * @return Response
 */
public function show($id)
{
    $user = $this->users->find($id);

    return view('user.profile', ['user' => $user]);
}
}

public 目录下名为 testController.php。

当我http://localhost/blog1/testController.php 我在第 10 行的 C:\xampp\htdocs\blog1\public\testController.php 中找不到以下类 'App\Http\Controllers\Controller'。 有什么建议吗? 我尝试将命名空间设置为 blog1,但现在 blog1/Http?Controller 没有任何反应。

我通过composer重新安装了Laravel。

【问题讨论】:

  • testController.php 里面有什么?

标签: php laravel namespaces


【解决方案1】:

阅读 PHP 中的 PSR-4PSR-0 (deprecated)autoloading。抛出错误是因为类名 (UserController) 必须与文件名 testController.php 完全相同,因此您应该将文件命名为 UserController.php 或您的类命名为 testController

另请阅读Laravel's routingcomposer's autoloading

【讨论】:

    【解决方案2】:

    来自 laravel 的错误是有效的。 您将文件 TestController.php 放在公共目录下,并为该类提供 - App\Http\Controllers 的命名空间。

    您应该将TestController.php 放在目录中:

    app > Http > Controllers
    

    这样,你的代码就不会再抛出错误了!

    查看更多关于Laravel Controllers & NamespacingLaravel Directory Structure的信息

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2019-10-29
      • 2015-05-21
      • 2023-03-07
      • 2023-03-21
      • 2015-07-27
      • 2016-11-27
      • 2023-04-09
      • 2021-06-20
      • 2018-04-27
      相关资源
      最近更新 更多