我正在尝试创建一个存储自定义类的目录,因此我在该文件夹中创建了目录app/ArgumentClub/Transformers
和类UserTransformer.php
。
然后我自动加载:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
],
"psr-4": {
"ArgumentClub\\": "app/ArgumentClub"
}
},
并运行composer dump-autoload
。像这样的命名空间:
<?php namespace ArgumentClub\Transformers;
class UserTransformer {
我在另一个类中调用此类:
<?php
use Sorskod\Larasponse\Larasponse;
use ArgumentClub\Transformers;
class UsersController extends \BaseController {
...
$transformed = $this->fractal->collection($users, new UserTransformer());
但我收到错误:
Class 'UserTransformer' not found
我在这里做错了什么?
答案 0 :(得分:0)
您没有正确使用use
。
use ArgumentClub\Transformers;
导入Namespace,但不导入您要使用的类。
要解决此问题,您可以将use
语句(您应该)扩展为:
use ArgumentClub\Transformers\UserTransformer
或者您可以将Transformers命名空间添加到实例化UserTransformer类的位置
$transformed = $this->fractal->collection($users, new Transformers\UserTransformer());
如果要在不放置完整命名空间的情况下实例化命名空间类,则需要将完整的类路径放在use
语句中。