ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

【CakePHP3】ViewでRouterクラスを使うにはuseを使って呼び出さないといけない

CakePHP3を使って、CakePHP2みたいに普通にコーディングしていると。。。

Router::url in view generates fatal error: class not found

え? まじ? クラスなくなったんかないな。」と驚いて検索したところ。

github.com

You are missing a use statement. Because CakePHP 3.0 uses namespaces, you have to either use the fully namespaced classname Cake\Routing\Router or add use Cake\Routing\Router to the top of your view file.

なんと! viewでもnamespaceを使ってロードしなければいけないのか。

<?php
use Cake\Routing\Router;
?>
<a rel="button" class="submit btn btn-success" href="<?= Router::url(['controller' => 'Users', 'action' => 'index']) ?>">

つーことで、使うにはこうしなければならないので注意。