CakePHP 2.0 не может получить доступ к модели с собственного контроллера - PullRequest
1 голос
/ 13 января 2012

Я все еще пытаюсь перейти с CakePHP 1.3 на 2.0

У меня есть Controller UsersController и его модель User. Класс User имеет несколько констант, к которым я мог легко получить доступ из UsersController, используя User :: constant. Но для CakePHP 2.0 это не работает: я получаю сообщение о том, что класс User не найден. Это работает, если я App::Import('Model', 'User');.

Ответы [ 5 ]

4 голосов
/ 14 января 2012

Это, безусловно, связано с их встроенной отложенной загрузкой в ​​2.0!вам просто нужно сообщить этому файлу, что у него есть другие зависимости

сделать это в самом верху вашего файла UserController:

<?php
App::uses('User', 'Model');

тогда все работает нормально

0 голосов
/ 03 декабря 2013

Вы должны загрузить модель следующим образом:

$this->loadModel('User');
0 голосов
/ 14 января 2012

Я устанавливаю переменные в модели следующим образом:

//Person model
public $genders = array('m' => 'male', 'f' => 'female');

Затем получаю их из контроллера следующим образом:

//People controller
$genders = $this->Person->genders;

Специальный код не требуется(Это то, о чем вы говорите?)

Кроме того, я не верю, что вам нужно больше где-либо устанавливать переменную $name - думаю, это было только для PHP 4.эта часть, но ... я никогда не устанавливаю это больше, и мои приложения Cake2 работают нормально)

0 голосов
/ 13 января 2012

Вы объявили название модели таким образом?

class User extends AppModel {
    public $name = 'User';
}

Есть ли в вашем UsersController другие переменные?

0 голосов
/ 13 января 2012

Вы можете попробовать установить имя контроллера (в UsersController):

var $name = 'Users';

Или с помощью «использует» var (в других контроллерах:

public $uses = array('User');

Разве это не работает?

...