CakePHPのコントローラー内に二つのアクションがあります。一つ目のアクションから二つ目のアクションへリダイレクトする際に、一つ目のアクションで定義した変数を2つ目のアクションに引き継ぎたいのですがどのようにすれば実現可能でしょうか。
CakePHPのドキュメントにあった以下の記載方法を試してみましたが[Undefined variable:]となってしまい変数の定義がなされていないようです。
【環境情報】
・Windows環境にXAMPPをインストール
・CakePHP Ver3.6
・PHP 7.1.8
【CakePHPのドキュメント】
[https://book.cakephp.org/3.0/ja/controllers.html#id3]
testController.php
PHP
1return $this->redirect(['action' => 'edit', $id]);
【自分の作ったテストコード】
ユーザーが入力したメールアドレスを引き継いで登録確認メールを送信する処理です。
<?php namespace App\Controller; use App\Controller\AppController; use Cake\Mailer\Email; /** * Users Controller * * @property \App\Model\Table\UsersTable $Users * * @method \App\Model\Entity\User[]|\Cake\Datasource\ResultSetInterface paginate($object = null, array $settings = []) */ class UsersController extends AppController { public function add() { $user = $this->Users->newEntity(); if ($this->request->is('post')) { $user = $this->Users->patchEntity($user, $this->request->getData()); if ($this->Users->save($user)) { $this->Flash->success(__('The user has been saved.')); return $this->redirect(['action' => 'sendmail',$user['email']]); } $this->Flash->error(__('The user could not be saved. Please, try again.')); } $this->set(compact('user')); } public function sendmail(){ $email = new Email('default'); try{ $email->setFrom(['support@XXXX.com' => 'サポート']) ->setTo($user['email']) ->setCc('XXXX@XXXX.com') ->setSubject('テスト') ->send(h($user['email']).'さん登録ありがとうございます。'); echo "送信に成功しました。"; }catch(Extention $e){ echo "送信に失敗しました。"; } }
宜しくお願い致します。


回答2件
あなたの回答
tips
プレビュー