Передача данных в контроллер из представления в CakePHP
Я новичок в CakePHP. Я просмотрел видеоуроки Эндрю Перкинса. Это отличный учебник для начинающих. Я хочу получить имя пользователя для скрытого поля со страницы входа в систему и сохранить его в виде. И передать его контроллеру и сохранить его в базе данных, когда это необходимо.
сейчас у меня есть add.ctp, BabiesController.php в качестве контроллера и baby.php в качестве модели. так как я не заполнил страницу входа в систему, я хотел бы, например, жестко закодировать имя пользователя.
вот мои коды. надеюсь, вы, ребята, можете мне помочь. это адрес database.emails, который использовался в качестве первичного ключа для таблицы babyprents. Столбец parent в таблице babies является внешним ключом для адреса электронной почты в таблице babyparents.
Модель: baby.php
<?php
class Baby extends AppModel {
var $name = 'Baby';
}
Контроллер: BabiesController.php
<?php
class BabiesController extends AppController {
var $name = 'Baby';
function index()
{
$this->set('babies',$this->Baby->find('all'));
}
function add()
{
if(!empty($this->data))
{
$this->Session->setFlash($this->data);
if($this->Baby->save($this->data))
{
$this->Session->setFlash('Successful');
$this->redirect(array('action'=>'index'));
}
else{
$this->Session->setFlash('unsuccessful');
}
}
}
}
Вид: add.ctp
<h2>Sign up</h2>
<?php
echo $this->form->create('Baby',array('action'=>'add'));
echo $this->form->input('firstName');
echo $this->form->input('middleName');
echo $this->form->input('lastName');
echo $this->form->input('birthday');
echo $this->form->input('age');
echo $this->form->input('doctor');
echo $this->form->end('Sign up');
?>
все данные были сохранены за исключением адреса электронной почты. Любое руководство будет оценено. Спасибо вам всем.
1 ответ
В вашем контроллере используйте saveAll ($ this-> data):
function add()
{
if(!empty($this->data))
{
$this->Session->setFlash($this->data);
if($this->Baby->saveAll($this->data))
{
$this->Session->setFlash('Successful');
$this->redirect(array('action'=>'index'));
}
else{
$this->Session->setFlash('unsuccessful');
}
}
}
В вашем add.ctp вставьте эту строку
echo $this->form->input('Babyparent.email');