我将实现绑定到文档中的接口。但似乎没有任何效果。 (该接口在与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
}
答案 0 :(得分:1)
显示的错误消息表明找不到Item类。 大多数情况下,此错误来自命名空间或类名称中的错误。
验证命名空间是否为App。如果您使用命令php artisan app:name
,或更改app.config
中的命名空间行,那么您的命名空间将更改为您放入该命令的名称,因此您需要更改每个地方仍使用App命名空间。验证您是否更改了该文件中的命名空间
物品和书籍是模特吗?确保它们位于YourProjectName/app
文件夹中。如果不是,请确保它们位于该目录中的子文件夹内,如果是,只需使用正确的目录更改行App\Item
和App\Book
。例如:
我的laravel命名空间是MyNamespace
。在我的项目文件夹中,我有app
文件夹,在我的app
文件夹中,我有一个名为Models
的文件夹,在该文件夹中我有一个模型书。当我使用Book模型时,我必须引用MyNamespace\Models\Book
。
使用我的前例namespace YouNameSpace\ModelName;
namespace MyNamespace\Models\Book;
行进行初始化