接口绑定不起作用

时间:2017-11-20 00:51:01

标签: laravel

我将实现绑定到文档中的接口。但似乎没有任何效果。 (该接口在与Book类相同的文件中定义。)

// In AppServiceProvider::register()

$this->app->bind(
    'App\Item',
    'App\Book'
);

// In a controller

public function __construct(Item $x)
{
    // ReflectionException: Class App\Item does not exist
}

1 个答案:

答案 0 :(得分:1)

显示的错误消息表明找不到Item类。 大多数情况下,此错误来自命名空间或类名称中的错误。

验证命名空间是否为App。如果您使用命令php artisan app:name,或更改app.config中的命名空间行,那么您的命名空间将更改为您放入该命令的名称,因此您需要更改每个地方仍使用App命名空间。验证您是否更改了该文件中的命名空间

物品和书籍是模特吗?确保它们位于YourProjectName/app文件夹中。如果不是,请确保它们位于该目录中的子文件夹内,如果是,只需使用正确的目录更改行App\ItemApp\Book。例如:

我的laravel命名空间是MyNamespace。在我的项目文件夹中,我有app文件夹,在我的app文件夹中,我有一个名为Models的文件夹,在该文件夹中我有一个模型书。当我使用Book模型时,我必须引用MyNamespace\Models\Book

使用我的前例namespace YouNameSpace\ModelName;

验证您的模型文件是否已使用此类namespace MyNamespace\Models\Book;行进行初始化