使用重定向测试操作在 yii2 中给出了意想不到的行为
Testing action with redirect gives uexpectable behavior in yii2
我尝试使用代码检测来测试我的应用程序,但是所有 LoginCept.php 都在这个动作上中断
class SiteController extends Controller {
public function actionIndex() {
$this->redirect('journal');
}
}
正如我在 php-buildin-server 的日志中看到的那样,在应用内重定向后它到达实际入口点 index.php 而不是 index-test.php
[Thu Jun 9 20:54:00 2016] 127.0.0.1:40472 [302]: /index-test.php/login
[Thu Jun 9 20:54:00 2016] 127.0.0.1:40496 [302]: /index-test.php << in-app redirect
[Thu Jun 9 20:54:00 2016] 127.0.0.1:40506 [500]: /journal
因此,由于这种意外行为,测试失败了。如何强制应用程序的重定向在同一个入口点脚本中工作?
需要将 URI 包装到 Url::to() 以添加 yii2 使用的所有内容。所以函数调用应该是这样的
$this->redirect(Url::to('to/something'));
我尝试使用代码检测来测试我的应用程序,但是所有 LoginCept.php 都在这个动作上中断
class SiteController extends Controller {
public function actionIndex() {
$this->redirect('journal');
}
}
正如我在 php-buildin-server 的日志中看到的那样,在应用内重定向后它到达实际入口点 index.php 而不是 index-test.php
[Thu Jun 9 20:54:00 2016] 127.0.0.1:40472 [302]: /index-test.php/login
[Thu Jun 9 20:54:00 2016] 127.0.0.1:40496 [302]: /index-test.php << in-app redirect
[Thu Jun 9 20:54:00 2016] 127.0.0.1:40506 [500]: /journal
因此,由于这种意外行为,测试失败了。如何强制应用程序的重定向在同一个入口点脚本中工作?
需要将 URI 包装到 Url::to() 以添加 yii2 使用的所有内容。所以函数调用应该是这样的
$this->redirect(Url::to('to/something'));