如何通过多个路由使用不同的@Entity(“ parameter”,expr =“ repository.customQuery()”)

时间:2019-08-20 18:05:17

标签: symfony routing doctrine symfony4

在我的控制器中,我为一项操作设置了多个路由。
它们都需要相同的内容,但是使用不同的URL。

其中一条路线没有参数,而第二条路线有1个参数。
因此,我的自定义查询会根据参数是否存在进行更改。

如果可能的话,我想用SELECT B.NAME as BRANCH, COALESCE(BP2.NAME, BP.NAME) as REGION_NAME FROM CTE B LEFT JOIN CTE BP ON B.PARENTID = BP.ID LEFT JOIN CTE BP2 ON BP.PARENTID = BP2.ID AND BP2.DESCRIPTION = 'REGION' WHERE B.DESCRIPTION = 'BRANCH'; @Entity来处理它,而不是使用几乎相同的代码来执行两个不同的动作。

如果路线为expr,则此处的目标是执行custonQuery({isAccueil: true}
否则,如果路由为salle_home,则为customQuery({salle: id})

是否可以根据路线使用其他表达式?

salle_show

1 个答案:

答案 0 :(得分:0)

我认为您应该遵循Nicolai的建议。 如果不这样做,则可以尝试使用ParamConverter,它是@Entity批注的快捷方式。 我想-但没有尝试过-当路由中id不匹配时,命名参数(在您的情况下为Salle)会忽略id实体。