cakephpの勉強をしているのですが、コントローラクラスのflashメソッドについて教えてください。(ドキュメントルート直下にcakephp2というディレクトリがありその中にcakephp関連のファイル、ディレクトリがある。cakephp2.7.3)
index.ctpに
<?php echo $this->Html->link('このタスクを完了する','/Tasks/done/'.$row['Task']['id']);?>
のようにリンクを設置して、TasksController.phpに
public function done(){ $id=$this->request->pass[0]; $this->Task->id=$id; $this->Task->saveField('status',1); $msg=sprintf('タスク %s を完了しました。',$id); $this->flash($msg,'/Tasks/index'); }
のようにdoneアクションがあります。
これでindexページのリンク「このタスクを完了する」をクリックすると、「タスク1を完了しました。」というリンクが表示されたページに飛び、そのリンクをクリックするとindexページに戻ることが期待されると思うのですが。
実際やってみた結果「このタスクを完了する」をクリックすると「タスク1を完了しました。」というリンクが表示されたページに飛ぶのですが、そのリンクのアドレスが
http://localhost/cakephp2/cakephp2/Tasks/index
となります(なぜかcakephp2が一つ多い)。リンクをクリックすると「cakephp2というコントローラはない」というエラーが出ます。アドレスがおかしいのでルーティング関係でしょうか?といってもルーティング関係のファイルを今まで全くいじってないのに動作がおかしいってあるんでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/04 13:04