【发布时间】:2018-09-07 10:45:09
【问题描述】:
CakePhp3 有这个问题:
在我的控制器中,我想做这样的事情:
class MyController extends Controller
{
public function myAction1(){
$this->initData();
/* more code here */
}
public function myAction2(){
$this->initData();
/* more code here */
}
public function myAction3(){
$this->initData();
/* more code here */
}
/* more actions here */
private function initData(){
if ($this->validData()){
/* complex code to initalize data */
}else{
/* REDIRECT TO FAIL URL */
}
}
private function validData(){
/* complex code to validate data */
return $valid;
}
}
我的问题是:
我应该用什么代码代替
/* 重定向到失败的 URL */
将用户重定向到不同的 url?
使用:
return $this->redirect($url);
initData 内部(当然)不起作用,我不想在每个动作中处理重定向。
【问题讨论】:
-
$this->redirect() 在 CakePHP 3.6 $this->initData() 中为我工作。
-
它不起作用,因为在 initData 中 return $this->redirect($url) 只会返回一个响应对象到 myAction1、myAction2 等。它可以从 myAction1、myAction2 内部调用它,等等,但我必须全部更改,这就是我要避免的。
标签: redirect cakephp controller