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中?
答案 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/)做的。 还会更详细地解释发生了什么。