symfony - symfony 构造函数错误不存在这样的服务
问题描述
我是 symfony 的新手,我正在尝试使用构造函数,但它不起作用,我不明白为什么
error:
Cannot autowire service \App\Controller\OutputController argument $product of method &__construct() references class App\Entity\Product but no such service exists.
<?php
namespace App\Controller;
use App\Entity\Product;
class OutputController {
private $product;
public function __construct(Product $product)
{
$this->product = $product;
}
public function jsonFormat() {
return json_encode($this->product->toArray());
}
}
?>
谢谢
解决方案
您使用自动装配并尝试自动装配实体。默认情况下,默认情况下,此配置行不会app/config/services.yml
将它们公开为服务:
App\:
resource: '../src/*'
exclude: '../src/{Entity,Migrations,Tests,Kernel.php}'
正如你所看到的,symfony 暴露了所有文件,src/*
除了:
实体,迁移,测试,Kernel.php
您不应将实体公开为服务,也不应依赖控制器中的实体,为此使用服务
推荐阅读
- python - 试图将音频分成 20 毫秒的块并制作频谱图,但看起来很奇怪
- sql - Oracle 刷新物化视图的触发器在物化视图中给出延迟输出
- windows - 在 Windows 上使用 Intel 的 ifort:我如何知道指定主文件不是用 Fortran 编写的?
- php - 提交表单后如何显示自定义消息?
- python - 将二进制编码转换为类多标签python
- php - SQL 显示表信息,当另一个表中的条件为真时?
- tfsbuild - 即使从命令行进行相同的构建工作,TFS 构建也会失败
- node.js - AWS Cognito adminCreateUser from Lambda duplicated username added
- css - Safari浏览器的CSS变换matrix3d问题
- windows - eGit 不使用 .gitconfig 用户