質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

1回答

3737閲覧

cakephp3でコントローラを省略してhomeに飛ばしたい

yajin

総合スコア75

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2016/09/13 06:56

編集2016/09/13 07:05

ログイン認証後、リダイレクト先をpagesのhomeに設定した際に

URLを https://hogehoge.com/home
にするroutesの書き方についての質問です。

loginメソッド

PHP

1return $this->redirect($this->Auth->redirectUrl(["controller" => "Pages", ["action" => "home"]]));

routes.php

PHP

1 $routes->connect('/home', ['controller' => 'Pages', 'action' => 'home', 'home']);

このようにすると、http://192.168.33.10:60000/pages/home
になってしまいます。pagesを省略する書き方についてお伺いしたいです。
ちなみに、デフォルトでdisplayメソッドは消しました。新たにhomeメソッドを作りました。

・また、エラー等を見ると、コントローラには必ずindexメソッドが必要なのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

routesの書き方が違います

php

1$routes->connect('/home', ['controller' => 'Pages', 'action' => 'display', 'home']);

※Pagesコントローラのdisplayアクションでhomeが引数です。home.ctpが表示されます。

loginメソッドは、単に以下のように書けばいいと思います。

php

1return $this->redirect('/home');

投稿2016/09/13 07:11

popobot

総合スコア6586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yajin

2016/09/13 07:21

ご回答ありがとうございます。 恐れ入ります。 既存のdisplayメソッドはややこしくて、分りやすくするために、消してしまいたいのですが、homeメソッドを作った場合のコントローラの書き方について伺いたいです。
yajin

2016/09/13 07:24

routes.php $routes->connect('/home', ['controller' => 'Pages', 'action' => 'home', 'home']); loginメソッド return $this->redirect('/home'); pagesController public function home(){ } これで行けましたが、この方法で大丈夫なのでしょうか。
popobot

2016/09/13 07:27

displayメソッドは原則消してはいけません。CakeでDBへのアクセスなどをしない静的なページを作るのに使います。 だったら、別のコントローラにhomeメソッドを作ってはどうでしょうか? UsersContollerにhomeメソッドを作って、routes.phpのactionをhomeにすれば動くとお見ます。特に処理がないならhomeメソッドは空っぽでも大丈夫です
popobot

2016/09/13 07:29

これでも大丈夫だと思います。将来必要になったら、displayメソッド復活させてもいいですしね。 細かいですが、routesのhome引数はいらなくなったので、消しちゃってもいいです。 $routes->connect('/home', ['controller' => 'Pages', 'action' => 'home'])
yajin

2016/09/13 07:54

ありがとうございました。 助かりました! 将来的に使うかもしれないのでコメントアウトしておきました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問