Laravel 5 App命名空间

Von*_*yan 3 php namespaces laravel eloquent laravel-5

我是Laravel 5的新手。

我设置了原始应用程序并在Homestead中运行。当我编写一个简单的UserTableSeeder并尝试使用artisan播种MYSQL数据库时,弹出一个错误:“找不到类用户”。

好吧,我没有更改“ app / User.php”文件中的任何内容,并且在将名称空间App添加到种子代码后,

也就是说,来自

User::create(array(..));
Run Code Online (Sandbox Code Playgroud)

App\User::create(array(..));
Run Code Online (Sandbox Code Playgroud)

播种效果很好。

当我尝试使用时发生了同样的事情

User::all();
Run Code Online (Sandbox Code Playgroud)

或“ routes.php”中的其他口才查询操作。只有添加名称空间App \后,它才能解决。

我已经尝试过composer dump-autoload,并且确保应用程序名称和“ composer.json”文件与Laravel 5中的原始代码完全相同。

每当我们想在Laravel 5中使用模型时,是否必须添加名称空间App /

我想我可能出了点问题,因为在Laravel 4中,在这些情况下我们不必添加名称空间App

Jon*_*hon 6

在Laravel 5中,默认情况app下该目录的命名空间App为。如果您查看,composer.json则将看到该app目录已设置为psr-4自动加载:

"psr-4": {
    "App\\": "app/"
},
Run Code Online (Sandbox Code Playgroud)

如果要从那里或子目录中使用类,则需要包括名称空间。use如果您只想按原样引用类名,也可以使用它。例如:

app / Namespace / SomeClass.php

<?php namespace App\Namespace;

use App\User;

class SomeClass {

    public function someMethod()
    {
        $user = User::find(1);
    }

}
Run Code Online (Sandbox Code Playgroud)