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。
在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)