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

(Phalcon) How to redirect (Phalcon\Http\Response) from static method in model

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

public function checkEmtpy(ResultsetInterface $resultset)
{
    $di = \Phalcon\DI::getDefault();

    if (empty($resultset->toArray())) {

        $di->get('flash')->error('Page not found.');
        return $di->get('response')->redirect('content');

    } else {

        return false;

    }
}

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

我可以做些什么来使这项工作有效,或者这根本不可能?

在模型中进行重定向是违反 MVC 原则的。重定向必须在控制器中完成。您应该做的只是 return 仅来自您的模型的状态。像这样:

// 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(...);
    }
}