【发布时间】:2014-02-01 23:30:58
【问题描述】:
跟进问题至:In CakePHP, where would I put a method that performs a check on the Session User?
背景:在我之前的问题中,我被告知正确放置方法的位置,例如levelCheck(),它对用户的级别执行半复杂的评估,并且在实际中需要我所有的控制器都是AppController。
现在,这种方法对于我设计菜单布局和其他视图设备的方式也非常有用。出于这个原因,我想创建一个可以使用该方法的助手。
问题:我认识到从视图中调用控制器方法通常是不受欢迎的......但是我没有可行的方法来传递数据以复制此方法的功能,也没有我想在两个地方复制该方法吗(违反 DRY 方法)。
问题:我如何从帮助程序中调用此方法,或者是否有更好的方法在视图/元素中提供此方法的使用?
【问题讨论】:
-
虽然在 cake 2.x 中有点早,但你可以考虑
trait与你的 levelCheck 逻辑。如果你有 PHP 5.4.x。只需将特征放入/Lib并调用App::uses('LevelCheckTrait', 'Lib');并在控制器/助手中写入use LevelCheckTrait
标签: cakephp cakephp-2.0