CakePHP3.7で開発をしています。
http://example.com
にアクセスした場合、
http://example.com/tests/view
を表示するページを設定したいと考えています。
また、
http://example.com/tests/view
のページは、
http://example.com/tests/view/5
のように IDを付与して特定の情報を取り出す場合も想定しています。
そのため、トップページも
http://example.com/5
のように IDを付与することも想定しています。
このような場合はルーティングの設定をすることはできるのでしょうか?
PHP
1 $routes->connect('/*', ['controller' => 'tests', 'action' => 'view']) 2 ->setPatterns(["id" => "\d+"]) 3 ->setPass(["id"]);
上記を設定すると、トップページを IDあり、なしの場合のいずれも正しく動作しますが、
http://example.com/tests/view
のように他のページを表示しようとしたときに「Cannot convert value of type string
to integer」のエラーになります。
PHP
1 $routes->connect('/:id', ['controller' => 'tests', 'action' => 'view']) 2 ->setPatterns(["id" => "\d+"]) 3 ->setPass(["id"]); 4
上記の設定をすると、IDを付与したり、「tests/view」を指定したときは正しく動作しますが、
http://example.com
にアクセスしたときに「Missing Route」「Error: A route matching "/" could not be found.」のエラーがでます。
あなたの回答
tips
プレビュー