symfony - Api 平台:实体级联上的订单
问题描述
使用Api Platform,我们可以通过关联订购。
文档:
use ApiPlatform\Core\Annotation\ApiResource;
/**
* @ApiResource(attributes={"order"={"author.username"}})
*/
class Book
{
...
但我想订购实体级联。
对于下面的示例,我对此错误进行了测试:
* @ApiResource(
* attributes={
* "order"={"exercises.repetitions.id":"asc"}
* }
* )
[语义错误] 第 0 行,第 422 列,靠近 'id ASC,rests_a6.id':错误:App\Entity\TrainingSerieExercise 类没有名为 repeats.id 的字段或关联
TrainingSerie
实体 :
* @ApiResource(
...
* attributes={
* "order"={"exercises.repetitions.id":"asc"}
* }
* )
*/
class TrainingSerie
{
...
/**
* @var TrainingSerieExercise[]|ArrayCollection
*
* @ORM\OneToMany(
* targetEntity="App\Entity\TrainingSerieExercise",
* mappedBy="serie",
* cascade={"persist"}
* )
* @Groups({
* "trainings_read",
* "training_series_read",
* "training_series_write",
* })
*/
private $exercises;
...
TrainingSerieExercise
实体 :
...
class TrainingSerieExercise
{
...
/**
* @var TrainingSerieRepetition[]|ArrayCollection
*
* @ORM\OneToMany(
* targetEntity="App\Entity\TrainingSerieExerciseRepetition",
* mappedBy="exercise",
* cascade={"persist"},
* )
* @Groups({
* "training_series_read",
* "training_series_write",
* "training_serie_exercices_write",
* })
*/
private $repetitions;
...
TrainingSerieExerciseRepetition
实体 :
class TrainingSerieExerciseRepetition
{
...
/**
* @var integer
*
* @ORM\Id
* @ORM\Column(name="id", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
* @Groups({
* "training_series_read",
* })
*/
private $id;
...
解决方案
按照这个Doctrine 文档,这将按 ID 订购 TrainingSerieExercise::$repetitions:
class TrainingSerieExercise
{
...
/**
* @var TrainingSerieRepetition[]|ArrayCollection
*
* @ORM\OneToMany(
* targetEntity="App\Entity\TrainingSerieExerciseRepetition",
* mappedBy="exercise",
* cascade={"persist"},
* )
* @ORM\OrderBy({"id" = "ASC"})
* @Groups({
* "training_series_read",
* "training_series_write",
* "training_serie_exercices_write",
* })
*/
private $repetitions;
...
推荐阅读
- elasticsearch - 使用休眠搜索和休眠 ORM 特例进行索引映射
- c# - 如何编辑 SOAP 请求正文
- java - 为什么我在运行测试代码时收到此消息(设置 -DfailIfNoTests=false 以忽略此错误。)?
- javascript - 使用 Spring Boot 和 React Router 提供静态文件夹
- reactjs - 更新数组变量的状态
- ios - Peer 删除了 react-native-ble-plx 中的配对信息
- r - 输出循环 Ggplot2 数字到 pdf:下标越界
- python - Python - 将 For Loop 项目作为新行写入 CSV
- logging - 在服务器中打印 IP 地址。Wildfly 10 服务器的日志
- javascript - Firestore 离线持久性在 Ionic 中不同步