Я не верю, что это можно сделать автоматически. Помощник - это просто «помощник», который строит ссылку по заданным параметрам.
Таким образом, самый простой способ - добавить еще один параметр в ссылку:
echo $html->link(
'Product 37',
array('controller'=>'products', 'action' => 'view', 37, $slug)
);
где $ slug - это данные из поля slug.
Вероятно, это может быть сделано по вашей идее, но вам нужно очень сильно нарушить схему MVC:)
Edit:
Прочитав ваш вопрос еще раз, я хорошо поняла. Посмотрите, как это должно быть сделано:
в вашем router.php добавьте следующее правило:
Router::connect(
'/product/*',
array('controller' => 'products', 'action' => 'view')
);
Обратите внимание, что это / product / *, а не / products / *
Ваша ссылка должна быть сделана так:
echo $html->link(
'Product 37',
array('controller'=>'products', 'action' => 'view', 37, 'my-product-title')
);
и ссылка будет выглядеть так:
http://yourdomain.com/product/37/my-product-title
Для меня твое предложение - плохая практика. Также я не думаю, что это хорошо с точки зрения SEO, перенаправляя всегда пользователя.