проверка CakePHP потерять параметры - PullRequest
0 голосов
/ 04 июля 2010

CONTROLLER

class ImagesController extends AppController {
    var $name = 'Images';
    var $uses = array('Image','Person');
    var $helpers = array('Html', 'Form');


        function add($idp = 0, $mac = 0) 
        {


            if (!empty($this->data) &&
                 is_uploaded_file($this->data['Image']['File']['tmp_name'])) {
                $fileData = fread(fopen($this->data['Image']['File']['tmp_name'], "r"),
                                         $this->data['Image']['File']['size']);

                $this->data['Image']['name'] = $this->data['Image']['File']['name'];
                $this->data['Image']['type'] = $this->data['Image']['File']['type'];
                $this->data['Image']['size'] = $this->data['Image']['File']['size'];
                $this->data['Image']['data'] = $fileData;
                $this->data['Image']['people_id'] = $idp;

                $this->Image->save($this->data);

                $this->redirect(array('controller' => 'People', 'action' => 'welcome',$mac));   

            }

        }

Когда я проверяю форму, я теряю оба параметра $ idp и $ mac. Как я могу заставить их сохраниться?

VIEW

<?php
    echo $form->create('Image', array('action' => 'add', 'type' => 'file'));
    echo $form->file('File');
    echo $form->submit('Upload');
    echo $form->end();
?>

1 Ответ

1 голос
/ 05 июля 2010

Вы должны добавить следующее в свой элемент формы:

'url'=>$this->Html->url()

Таким образом, форма будет выглядеть следующим образом:

echo $form->create('Image', array('type' => 'file', 'url'=>$this->Html->url()));

В основном $ this-> Html-> url ()получите текущий URL с параметрами, и вы передадите его в действие формы, и если вы отправите в том же действии (как обычно), это будет держать ваши параметры в такте.

HTH

...