考えられるオプションの1つは、次のことを行うことです。
ビデオには、どのユーザーがどのビデオを検索するかという単純なコードよりもはるかに多くのコードが含まれている可能性があるため、VideosControllerでビデオリストアクションを実行する必要があります。
過去のプロジェクトでは(CakePHP 1.3で)これに対処するためにプレフィックスルーティングを使用しました。
config / core.phpで、routing.prefixesが「user」プレフィックスを含むように有効にしていることを確認してください。
<?php
... in routes.php ...
Routing.prefixes = array( 'user' );
?>
ビデオコントローラーで、次の署名を使用してアクションを実行します。
<?php
...
public function user_index( $userID = null ){
...
}
?>
また、ユーザービデオのリストにリンクするビューでは、html::link呼び出しは次のようになります。
<?php
...
echo $this->Html->link( 'User\'s Videos', array(
'controller' => 'videos',
'action' => 'index',
'prefix' => 'user',
$this->Session->read( 'Auth.User.id' )
));
?>
もちろん、これは、ログインしたユーザーを追跡するためにここでAuthコンポーネントを使用していることを前提としています。認証されたユーザーIDを読み取るためのセッションヘルパーコードは、微調整が必要な場合があります。
これにより、a)プレフィックスルーティングを有効にする以外にルーティングについてあまり心配する必要がなく、b)次のようなきれいなリンクをすばやく作成できます--site.com/user/videos/index/419
これをいくつかのスラッグ愛と組み合わせてください(これは私が見た中で最高のリンクです-dbレイヤーにスラッグフィールドは必要ありません-http: //42pixels.com/blog/slugs-ugly-bugs-pretty-urls)
非常に簡単に次のようなURLになってしまう可能性もあります:site.com/user/videos/index/eben-roux
app / config / routers.phpを少し編集するだけで、/ index /の部分を削除でき、
site.com / user / videos/eben-rouxの形式でSEOやユーザーフレンドリーな結果が得られます。
http://book.cakephp.org/view/945/Routes-Configuration