Я сталкиваюсь с проблемой функции чтения в CakePHP - PullRequest
0 голосов
/ 18 июня 2010

hii..Я хочу отредактировать одну строку. Я использовал $ this-> data = $ this-> BuildingProperty-> read (null, $ id);

, но он не получил значенияid.

так, что я могу сделать.Дайте мне любое предложение.

Ответы [ 3 ]

0 голосов
/ 18 июня 2010

Синтаксис, который вы используете, правильный. Сначала проверьте, является ли $ id целым числом. (echo $ id). Затем, если так, проверьте вашу базу данных, есть ли у нее такая запись в таблице building_properties, проверьте, существует ли этот идентификатор. Наконец, проверьте, заполнены ли переменные $ this-> data правильными значениями.

Все эти проверки возвращают вам правильные значения, тогда проблема не в функции Model-> read ().

Еще один совет, попробуйте очистить кеш / app / tmp / cache / modules и / app / tmp / cache / persistent

0 голосов
/ 21 июня 2010

Вы вызываете метод из контроллера, который знает о BuildingProperty? то есть BuildingPropertiesController. Если нет, включили ли вы

var $uses = array('BuildingProperty');

оператор в определении класса или явно загруженная модель, например,

loadModel('BuildingProperty')

Ваш синтаксис правильный, и единственное другое объяснение, если нет предупреждений или сообщений об ошибках, это то, что возвращаемый массив пуст, т.е. запись не существует.

Убедитесь, что у вас включена отладка:

Configure::write('debug', 1); // or higher.A 2 will output SQL queries as well

затем попробуйте

debug($this->BuildingProperty->read(null,$id));

Вы должны хотя бы получить какой-нибудь вывод, сообщающий вам строку вызова отладки.

0 голосов
/ 18 июня 2010

Почему вы передали null в качестве первого параметра?Это должна быть строка в массиве полей, которые вы хотите получить.

В любом случае, попробуйте это вместо:

$this->BuildingProperty->id = $id;
$this->data = $this->BuildingProperty->read();
...