laravel-5 - Laravel 5.8 依赖注入 - 如何将模型注入服务
问题描述
我有BooksService类,应该由Book 模型对象注入。然后我想将 BooksService 注入BookController。但我不知道该怎么做。
我收到一个错误 Class App\Model\BookService 不存在。是否需要在某处注册?我也不确定我是否做得对。是在这段代码中吗?
图书服务
namespace App\Model;
class BookService
{
/** @var Book */
public $books;
// I am not sure if this is ok
public function construct(Book $books)
{
$this->books = $books;
}
public function test()
{
dd($this->books);
}
}
图书控制器
namespace App\Http\Controllers;
use App\Http\Requests\StoreBook;
use App\Model\Book;
use App\Model\BookService;
use Illuminate\Http\Request;
class BookController extends Controller
{
....
// This throws me an error BookService does not exists
public function create(BookService $bookService)
{
$bookService->test();
return view('book.create');
}
....
}
解决方案
所以问题是 __contruct() 方法需要 Book 门面实例,但 Laravel 不知道它是什么。Book 外观也可以从服务类内部获得,因此无需注入它。
推荐阅读
- python - 将新的数据框列添加到熊猫中的同一数据框
- python - Telegram 获取聊天消息/帖子 - python Telethon
- ios - 未从集合视图调用 prepareForSegue
- python - 如何删除数据框中值顺序不重要的行
- algorithm - 可分配给 cpu 的最大任务数
- mysql - 我不能在 gcloud sql 上使用任何命令
- typo3-8.x - Typo3:如何在开发环境中处理多域
- svn - 版本控制 - 分支干线或干线中的文件夹?
- asp.net-mvc - 如果我将数据库上下文从控制器传递给类,上下文会被释放吗?
- bokeh - 散景的 histogram2d 示例