Передача данных в контроллер из представления в 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');
Другие вопросы по тегам