Cakephp - 向导组件 - 回显下一步中上一步的会话数据

时间:2013-03-25 13:35:17

标签: php cakephp

我对Cakephp很陌生,过去两个月我一直在开发一个项目,使用Wizard Component来帮助创建多页表单。

我的问题是如何将会话数据设置为上一步骤中下一步的视图。

到目前为止,我在我的控制器中有这个

控制器/ Uploadstylecontroller.php

CakePlugin::load('Wizard');

class UploadstyleController extends AppController {
    var $uses = array('Post');
        public $components = array('Wizard.Wizard');
        var $username = array();
    public function beforeFilter(){

        $this->layout = 'loggedinnorightbar';
        $this->Auth->allow('wizard','uploadstyle','styledetails','uploadcomplete');
        $this->Wizard->steps = array( 'uploadstyle','editpicture');
        $this->Wizard->wizardAction = '/uploadstyle/wizard/uploadstyle';
        $this->Wizard->completeUrl = '/uploadstyle/uploadcomplete';

        }

        public function uploadcomplete(){
        }

        public function wizard($step = null) {
        $this->Wizard->process($step);

    }
/**
 * [Wizard Process Callbacks]
 */
    public function processUploadstyle() {

        $this->Post->set($this->data);

        if($this->Post->validates()) {
            return true;

        }
        return false;
    }

    public function processEditpicture() {
        $uploadstyle = $this->Wizard->read();
        $this->set( 'uploadstyle',$uploadstyle );
        if($this->Post->validates()) {

            return true;

        }
        return false;
    }

我不打算保存数据,因为它工作正常。

在我看来uploadstyle / editpicture.ctp

<div class="signupwrapper" style="position:relative; width:470px; margin-top:30px;">

<?php echo $this->Form->create('Uploadstyle', array('id' => 'UploadstyleForm', 'url' => '/uploadstyle/wizard/editpicture'));


    echo $this->Form->hidden('Post.shines', array('value' =>  0));

    echo $uploadstyle['Post']['image_name'];

    ?>
    <div class="submit">
        <?php echo $this->Form->submit('Continue', array('div' => false)); ?>
        <?php echo $this->Form->submit('Cancel', array('name' => 'Cancel', 'div' => false)); ?>
    </div>

<?php echo $this->Form->end(); ?>

</div>

关于'echo $ upload ['Post'] ['image_name']'我需要激活组件中的某些内容,或者我是否在视图中错误地引用了数组?

非常感谢任何帮助!

如果这是一个很长的问题,我很抱歉,我第一次在这里提问。

1 个答案:

答案 0 :(得分:0)

这是我的解决方案,如果这可能会帮助将来任何人使用这个cakephp组件。

我将以下代码移动到应用向导的控制器中的beforeFilter()函数。

    $wizardData= $this->Wizard->read();
    $this->set( 'uploadstyle',$wizardData);

然后在view.ctp中我所要做的就是回复以下内容以获取我的值

echo $uploadstyle['uploadstyle']['Post']['image_name'];

和沃拉!我可以在表单的任何步骤访问我的向导会话。

我真的希望这对有类似问题的人有所帮助。