如何优先路由
How to prority route
我已经通过重写路由重写了应用程序中的控制器并且它有效,
但还安装了另一个插件,它覆盖了与我覆盖相同的路由(这个插件不能更改),现在这个路由被 shopware 支持,而不是我的。
这是我要显示的控制器
namespace MyPlugin\Core\Checkout\Customer\SalesChannel;
...
class ChangeCustomerProfileRoute extends AbstractChangeCustomerProfileRoute
{
* @Route(path="/store-api/account/change-profile", name="store-api.account.change-profile", methods={"POST"})
*/
public function change(RequestDataBag $data, SalesChannelContext $context, CustomerEntity $customer): SuccessResponse
...
这是另一个插件中的控制器 - 我不想显示它
(我需要这个插件,因为我需要功能,但我不需要这个路由)
namespace StorePlugin\Core\Checkout\Customer\SalesChannel;
...
class ChangeCustomerProfileRoute extends AbstractChangeCustomerProfileRoute
{
* @Route(path="/store-api/account/change-profile", name="store-api.account.change-profile", methods={"POST"})
*/
public function change(RequestDataBag $data, SalesChannelContext $context, CustomerEntity $customer): SuccessResponse
...
我读过这篇文章 https://symfony.com/blog/new-in-symfony-5-1-route-annotations-priority 但它不起作用,因为它没有优先考虑名称,只有 url。
我如何确定我的路由名称优先被 shopware 支持?
作为 hack,我会尝试使用 Listen 并忽略来自 Shopware 的路由。
优先级应该取决于插件加载顺序,由决定。
尝试以不同的顺序安装插件。您也可以手动更改数据库中 plugin
table 中的安装日期。
我已经通过重写路由重写了应用程序中的控制器并且它有效, 但还安装了另一个插件,它覆盖了与我覆盖相同的路由(这个插件不能更改),现在这个路由被 shopware 支持,而不是我的。
这是我要显示的控制器
namespace MyPlugin\Core\Checkout\Customer\SalesChannel;
...
class ChangeCustomerProfileRoute extends AbstractChangeCustomerProfileRoute
{
* @Route(path="/store-api/account/change-profile", name="store-api.account.change-profile", methods={"POST"})
*/
public function change(RequestDataBag $data, SalesChannelContext $context, CustomerEntity $customer): SuccessResponse
...
这是另一个插件中的控制器 - 我不想显示它 (我需要这个插件,因为我需要功能,但我不需要这个路由)
namespace StorePlugin\Core\Checkout\Customer\SalesChannel;
...
class ChangeCustomerProfileRoute extends AbstractChangeCustomerProfileRoute
{
* @Route(path="/store-api/account/change-profile", name="store-api.account.change-profile", methods={"POST"})
*/
public function change(RequestDataBag $data, SalesChannelContext $context, CustomerEntity $customer): SuccessResponse
...
我读过这篇文章 https://symfony.com/blog/new-in-symfony-5-1-route-annotations-priority 但它不起作用,因为它没有优先考虑名称,只有 url。
我如何确定我的路由名称优先被 shopware 支持?
作为 hack,我会尝试使用 Listen 并忽略来自 Shopware 的路由。
优先级应该取决于插件加载顺序,由
尝试以不同的顺序安装插件。您也可以手动更改数据库中 plugin
table 中的安装日期。