获取Model的常量

时间:2013-06-18 20:51:28

标签: php cakephp

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,如果我在TablesController中?

1 个答案:

答案 0 :(得分:1)

你不需要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/)做的。 还会更详细地解释发生了什么。