cakephp 测试表对象时出现MissingRouteException

5kgi1eie  于 2022-11-12  发布在  PHP
关注(0)|答案(1)|浏览(167)

我有一个TableObject,它在afterSave-Event中发送一封电子邮件通知管理员一个更改。在从cakephp-3切换到cakephp-4后,测试失败,并显示以下错误消息:

Cake\Routing\Exception\MissingRouteException: A route matching ... could not be found.

异常发生在电子邮件模板中的一行,我在其中构建了如下链接:

$this->Url->build([
    'prefix' => 'Partner',
    'controller' => 'orders',
    'action' => 'view',
    $order->id,
]);

我认为路由不是在Tableobject测试的上下文中设置的,因此反向路由不起作用。(我只在运行测试时收到错误,在应用程序中发送电子邮件时不会收到错误)。
是否有方法可以加载测试中的所有路由?

os8fio9y

os8fio9y1#

自4.x以来,路线不再自动加载。您需要添加

$this->loadRoutes();

到setUp()中或在测试运行之前立即主动加载它们。

相关问题