我是Laravel 5的新手。
我在Homestead中启动并运行原始应用程序。当我编写一个简单的UserTableSeeder并尝试使用artisan为MYSQL数据库播种时,会弹出一个错误:“找不到类用户”。
好吧,我没有更改“app / User.php”文件中的任何内容,并且在我将名称空间 App 添加到播种机代码后,
即来自
User::create(array(..));
到
App\User::create(array(..));
播种工作得很好。
当我尝试使用
时发生了同样的事情User::all();
或“routes.php”中的其他Eloquent查询操作。只有当我添加名称空间 App \ 时才能解决问题。
我尝试过 composer dump-autoload ,我确保应用名称和“composer.json”文件与Laravel 5中的原始代码完全相同。
每当我们想在Laravel 5中使用模型时,是否必须添加命名空间 App / ?
我想我可能有些错误,因为在Laravel 4中我们不必在这些情况下添加命名空间 App 。
答案 0 :(得分:5)
在Laravel 5中,默认情况下app
目录在App
下命名。如果您查看composer.json
,您会看到app
目录已设置为psr-4自动加载:
"psr-4": {
"App\\": "app/"
},
如果要从那里或在子目录中使用类,则需要包含命名空间。如果您只想按原样引用类名,也可以use
。例如:
应用/命名空间/ SomeClass.php 强>
<?php namespace App\Namespace;
use App\User;
class SomeClass {
public function someMethod()
{
$user = User::find(1);
}
}