(Phalcon) 如何从模型中的静态方法重定向 (Phalcon\Http\Response)



我正在尝试创建一个可重用的静态函数,如果为 true,则会重定向。 此函数将位于模型中。

public function checkEmtpy(ResultsetInterface $resultset)
{
$di = PhalconDI::getDefault();
if (empty($resultset->toArray())) {
$di->get('flash')->error('Page not found.');
return $di->get('response')->redirect('content');
} else {
return false;
}
}

我尝试了几种重定向方法,但我无法让它从模型重定向。

我可以更改什么以使这项工作或根本不可能?

在模型中执行重定向违反了 MVC 原则。重定向必须在控制器中完成。您应该做的是仅返回模型中的状态。像这样:

// Model
public function checkEmtpy(ResultsetInterface $resultset)
{
return empty($resultset->toArray());
}
// Controller
public action someAction()
{
$isEmpty = (new YourModelName)->checkEmtpy($someVariable);
if ($isEmpty === true) {
return $this->response->redirect(...);
}
}

最新更新