私のビューには、投稿の日付とスラッグを渡すことで投稿を呼び出す次のリンクがあります。
<?php echo $this->Html->link($post['Post']['title'],
array('controller' => 'posts', 'action' => 'view', 'date'=>date('Y/m', strtotime($post['Post']['datetime'])), 'slug'=> $post['Post']['slug'])); ?></h2>
<h4><?php echo $post['Post']['datetime']; ?><
ご覧のとおり、strtotime を使用して、URL で使用する日時をきれいにしています。
データベースから投稿を引き出すためにコントローラーで実際に日付を使用するのではなく、スラッグだけを使用するので、それほど重要ではありません。
ただし問題は、日付に が/
含まれているため、ルーターが混乱し、URL の 2 つの別個の部分であると見なすことです。これを修正するにはどうすればよいですか?
私のルートは次のとおりです。
Router::connect('/news/:date/:slug',
array('controller' => 'posts', 'action' => 'view'),
array(
//'date' => '[A-Za-z0-9\._]+',
'slug' => '[A-Za-z0-9\._]+',
'pass' => array('date', 'slug')
));