获取模型的常量


Get constants of Model

CakePHP: 2.3.5

class Table extends AppModel {
    const STATUS_FREE = 0;
    const STATUS_BUSY = 1;
    const STATUS_INCHECK = 2;
    const STATUS_LINK = 3;
    const STATUS_CLEAN = 4;
    const STATUS_CASHIER = 9;

我在TablesController中,我需要访问此常量。我创立的唯一方法是:

$this->loadModel('Table');
$free = Table::STATUS_FREE;

我也尝试:

self::STATUS_FREE

如果我在表格控制器中,为什么我需要使用$this->loadModel

你不需要 loadModel。您只需要包含该类。你也可以通过 App::uses(( 来实现这一点 - 这是一种作为延迟加载的 require(( 工作

只需包含您需要的类,即可从主类上方添加常量

。 总是。
App::uses('Table', 'Model');
App::uses('OtherModelWithContantsYouNeed', 'Model');
class TablesController extends AppController {}

现在,您可以在控制器代码及其所有视图中的任何位置使用常量!

这也是我为枚举中的类常量(http://www.dereuromark.de/2010/06/24/static-enums-or-semihardcoded-attributes/(执行此操作的方式。还更详细地解释了正在发生的事情。