質問: $user_id; $this -> User -> saveField('is_new', false); // 元のページをリロード // 別のページにリダイレクト $this -> redirect('http://hogehoge.jp'); } ``` なお、上記処理を行う前に、Viewでは下記のような記述をして、 新規ウインドウを起動させています。 ``` Html -> link('GO', 'hogehoge/'. $user_id, array('target' => '_blank')); ?> ```
回答: *そのようなことはできるのでしょうか?* できません。 ただし、あなたがコード例に挙げたような「CakePHP側の`hogehoge`メソッドの中では」と言う条件付きですが。 あなたが記載された形で`hogehoge`メソッドが呼ばれると、ブラウザはそのレスポンスを「新規ウインドウ」用のものとして解釈し、その中に「元のページ」に関する指示や情報を埋め込むことはできません。 「特定のリンクをクリックしたとき、別のページを新規ウインドウで表示させる前に、元のページをリロードさせたい」と言う要件があれば、(CakePHPかどうかに関わらず)元のページ側でJavaScriptで処理しないといけないでしょう。 CakePHPでJavaScriptを使っちゃいけないというわけではないですが、ご質問内のコード例から考えると別トピックと言えるように思います。「元のページ」内のJavaScriptから実行するのであれば「元のページをリロード」することも、「別のページを新規ウインドウで表示させる」ことも、それほど大したコードにはなりません。一度ご自身で調べたうえで、どうしてもわからない点が出たら、その時点でまた別の質問スレを立てられればいいのではないでしょうか。