在我网站的标题部分,我想展示新消息。我有一个方法来获取新方法并返回它们。问题是标题部分在layout
部分,我不想在所有控制器中重复一个方法。
如何通过不将方法复制到我的所有控制器来实现这一目的?我想在每个页面请求上触发newMessages()
方法,以便为登录用户收集新消息。如何以正确的方式做到这一点?
答案 0 :(得分:1)
在你的控制器中覆盖oOntroller类函数beforeAction()
protected function beforeAction($event)
{
$someResult = doSomething()
if ($someResult == $someValue)
{
return true;
}
else
{
return true;
}
}
返回值可用于停止请求死机。因此,如果它返回false,则不调用控制器操作,反之亦然()。
参考文献:http://www.yiiframework.com/doc/api/1.1/CController#beforeAction-detail
答案 1 :(得分:0)
您可以在另一个控制器操作中使用导入控制器。类似下面的内容
class AnotherController extends Controller
{
public function actionIndex()
{
Yii::import('application.controllers.admin.YourController'); // YourController is another controller in admin controller folder
echo YourController::test(); // test is action in YourController
}
}