Как я могу получить идентификатор записи при редактировании макета представления? - PullRequest
0 голосов
/ 02 июля 2010

Как я могу получить идентификатор текущей записи в редакторе макета просмотра?

Ответы [ 3 ]

2 голосов
/ 28 декабря 2012

Используйте $ this-> data ['ModelName'] ['id'] в представлении

2 голосов
/ 02 июля 2010

Вы можете загрузить рассматриваемую модель и получить к ней доступ таким образом из представления (что, на мой взгляд, является ужасной идеей) или вы можете «установить» ее в своем действии контроллера:

// In the controller action that renders the view
$this->set('current_id',$this->ModelName->id);

// Access it this way in the view/layout:
<?php echo $current_id; ?>

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

Удачи

0 голосов
/ 20 сентября 2014

Начиная с 2.3, если у вас есть $ this-> Form-> hidden ('fieldname');Вы можете надежно использовать $ this-> Form-> value ('ModelName.fieldname') для значения поля в форме.Когда представление отображается, так же, как теги ввода html получают значение, основанное на модели, используемой в контроллере и на которую ссылаются в $ this-> Form-create ('ModelName'), при визуализации значения $ this-> Form->('ModelName.fieldname') имеет значение.

В контроллере $ this-> request-> data ['ModelName'] устанавливается в массив данных модели в CakePhp, где ['id'] указывает на значение поля id.

$this->Form->create('ModelName');
$this->Form->input('id');
$this->Form->end();

Соответствует логике контроллера, где $ this-> request-> data [' ModelName '] получает ассоциативный массив, по крайней мере, с "id" =>некоторое значение id в зависимости от данных, считанных из базы данных.

Обратите внимание, что когда вы используете $ this-> Form-> value () для извлечения данных формы, оно будет работать, когда экран первоначально отображается контроллером., но может произойти сбой при повторной визуализации экрана, поскольку не удалось выполнить правило проверки модели, в котором использовалась функция в определении модели.

Чтобы убедиться, что $ this-> Form-> value () является надежной при большем количествелогику строгой проверки модели, используйте $ this-> Форма-> скрытый ( 'FIELDNAME');хранить данные в $ this-> request-> data ['ModelName'] на протяжении нескольких итераций проверки модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...