0

私は Cakephp を初めて使用します。過去 2 か月間、複数ページのフォームの作成に役立つウィザード コンポーネントを使用するプロジェクトを開発してきました。

私の質問は、前のステップからプロセスの次のステップのビューにセッション データを設定する方法です。

これまでのところ、コントローラーにこれがあります

コントローラー/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']' に関して、アクティブ化する必要があるコンポーネントに何かありますか、それともビューで配列を間違って参照していますか?

どんな助けでも大歓迎です!

こちらで質問するのは初めてで、長文になってしまい申し訳ありません。

4

1 に答える 1

0

これが、このcakephpコンポーネントの使用に関して将来誰かに役立つかもしれない場合の私の解決策です。

次のコードを、ウィザードが適用されるコントローラーの関数 beforeFilter() に移動しました。

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

次に、view.ctp で、次のようにエコーして値を取得するだけです。

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

そしてヴォラ!フォームのどのステップでもウィザード セッションにアクセスできます。

これが同様の問題を抱えている人に役立つことを本当に願っています。

于 2013-03-26T09:28:34.107 に答える