0

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->loadModelTablesController にいるのに、なぜ use が必要なのですか?

4

1 に答える 1

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/ )のクラス定数に対して行う方法でもあります。何が起こっているのかについても詳しく説明されています。

于 2013-06-18T21:13:32.147 に答える