我正在尝试从控制器显示列表,所有路由都在加载,但数据不显示
#[Route(path: '/admin/api/products', methods: ['GET'], name: 'app.get_products')]
public function index(ManagerRegistry $doctrine): Response
{
$products = $doctrine->getRepository(Product::class)->findAll();
if (!$products) {
return $this->json('No product found');
}
$data = [
'_embedded' => [
'products' => $products
]
];
return $this->json($data);
}
<?xml version="1.0" ?>
<list xmlns="http://schemas.sulu.io/list-builder/list">
<key>products</key>
<properties>
<property name="id" visibility="no" translation="sulu_admin.id">
<field-name>id</field-name>
<entity-name>App\Entity\Product</entity-name>
</property>
<property name="Product" visibility="always" searchability="yes" type="string">
<field-name>Product</field-name>
<entity-name>App\Entity\Product</entity-name>
</property>
<property name="item_number" visibility="always" type="string">
<field-name>ItemNumber</field-name>
<entity-name>App\Entity\Product</entity-name>
</property>
<property name="quantity" visibility="always" type="integer">
<field-name>quantity</field-name>
<entity-name>App\Entity\Product</entity-name>
</property>
</properties>
</list>
我尝试使用DoctrineRepresentational工厂,但显示未定义。
我是不是漏掉了什么?
1条答案
按热度按时间dphi5xsq1#
您可能需要查看Sulu Workshop存储库并逐步查看不同的Pull Request,这在开发第一个自定义实体时对我很有帮助:https://github.com/sulu/sulu-workshop/pulls
例如,Sulu人使用一个自定义的DoctrineListRepresentationFactory类,该类通过DoctrineListBuilder返回一个PaginatedRepresentation。我认为您的代码不起作用是因为JSON响应与Sulu管理员所期望的不匹配。