cakePHPでsaveした内容をリダイレクト先で使いたい。
cakePHPでユーザー登録機能をつくっています。登録画面(register.ctp)でフォームに入力した内容をバリデ―ションにかけ、セーブした後リダイレクト先の登録完了画面(top.ctp)で登録画面のフォームに入力した内容を用いてメッセージを表示したいのですがうまくいきません。以下コードと問題点です。
該当のソースコード
register.ctp
php
1<div class="form-container"> 2 <?= $this->Form->create($user); ?> 3 <?= $this->Form->control('name', ['required' => false, 'label'=>'名前', 'id'=>'name_check', 'class'=>'register_form']); ?> 4 <?= $this->Form->control('user_name', ['required' => false, 'label'=>'ユーザー名','id'=>'user_name_check', 'class'=>'register_form']); ?> 5 <?= $this->Form->control('password', ['required' => false, 'label'=>'パスワード','id'=>'password_check', 'class'=>'register_form']); ?> 6 <?= $this->Form->control('password_confirm', ['required' => false, 'label'=>'パスワード(確認)', 'id'=>'password_confirm_check', 'class'=>'register_form', 'type'=>'password']); ?> 7 <?= $this->Form->control('email_adress', ['required' => false, 'label'=>'メールアドレス','id'=>'email_adress_check', 'class'=>'register_form']); ?> 8 <div class="checkbox-container"> 9 <?= $this->Form->checkbox('notpublish', ['value'=>'notpublish']); ?> 10 <div class="checkbox-message"> 11 つぶやきを非公開にする 12 </div> 13 </div> 14 <?= $this->Form->button('アカウントを作成する'); ?> 15 <?= $this->Form->end(); ?> 16</div>
top.ctp
php
1<?php 2$this->assign('title', 'ユーザー登録完了'); 3?> 4<div class="top-container"> 5 <h1>参加しました。</h1> 6 <p><?= h($user_name); ?>さんは参加されました。</p> 7 <p>メッセ―ジ</p> 8 <div class="top-container-link"> 9 <?= $this->Html->link('twitterにログイン', ['controller'=>'Users', 'action'=>'login']); ?> 10 </div> 11 12</div>
UsersController.php
php
1 public function register() { 2 $user = $this->Users->newEntity(); 3 if ($this->request->is('post')) { 4 $user = $this->Users->patchEntity($user, $this->request->data); 5 if ($this->Users->save($user)) { 6 return $this->redirect(['action'=>'top']); 7 } else { 8 /// 9 } 10 } 11 $this->set(compact('user')); 12 } 13 14 public function top() { 15 16 }
top.ctpのh($user_name)のところにregister.ctpのuser_nameのフォームに入力された文字列を表示したいのですがうまくいきません。
試したこと
register.ctpのformでaction=>top.ctpとするとバリデ―ションが適用されずtop.ctpに直接とんでしまいます。
補足情報
PHP5.6
cakePHP3.6
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。