Один из возможных вариантов - сделать следующее:
Поскольку в видео, вероятно, содержится гораздо больше кода, чем в простом, который пользователь имеет, какие видео поиск должен выполнять действие со списком видео в 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 для отслеживания вошедшего в систему пользователя. Код помощника сеанса для чтения идентифицированного идентификатора пользователя может нуждаться в настройке.
Это позволяет вам: а) не беспокоиться о маршрутизации помимо включения префиксной маршрутизации и б) быстро даст вам красивые ссылки вроде этого - site.com / user / videos / index / 419
Соедините это с некоторой любовью к слизнякам (это лучшая ссылка для этого, которую я видел - поле слагов не требуется на слое БД - http://42pixels.com/blog/slugs-ugly-bugs-pretty-urls)
Вы можете даже легко получить URL-адреса, например: site.com / user / videos / index / eben-roux
и с небольшим изменением в app / config / rout.php вы можете удалить часть / index /, и результаты будут оптимизированы для SEO и пользователя в формате:
site.com / пользователь / видео / Эбен-подливку
http://book.cakephp.org/view/945/Routes-Configuration