同じコントローラー/アクションへのルートが 4 つあります。
Router::connect('/noticias/:id/:slug/*', array(
'controller' => 'posts', 'action' => 'listing', 'admin' => false),
array(
'pass' => array('id','slug'),
'id' => '[0-9]+',
'slug' => '[a-zA-Z0-9_-]+'
)
);
Router::connect('/servicos/:id/:slug/*', array(
'controller' => 'posts', 'action' => 'listing', 'admin' => false),
array(
'pass' => array('id','slug'),
'id' => '[0-9]+',
'slug' => '[a-zA-Z0-9_-]+'
)
);
Router::connect('/aplicacoes/:id/:slug/*', array(
'controller' => 'posts', 'action' => 'listing', 'admin' => false),
array(
'pass' => array('id','slug'),
'id' => '[0-9]+',
'slug' => '[a-zA-Z0-9_-]+'
)
);
Router::connect('/produtos/:id/:slug/*', array(
'controller' => 'posts', 'action' => 'listing', 'admin' => false),
array(
'pass' => array('id','slug'),
'id' => '[0-9]+',
'slug' => '[a-zA-Z0-9_-]+'
)
);
しかし、これらの異なるルートのページネーションを生成しようとすると、CakePHP は routes.php ファイルの最初の (見つかった) ルートだけを生成します。
特定のルートを取得するにはどうすればよいですか? または、Paginatorでルートを手動で設定しますか?
これに対する最善の解決策は何ですか? 4 つのアクションを作成しますか? 正規表現?リダイレクト?
<div class="paging right">
<?php $this->Paginator->options(array(
'url'=> array(
'controller' => 'posts',
'action' => 'listing',
'id' => $this->params->pass['0'],
'slug' => $this->params->pass['1'],
'admin' => false
)
)); ?>
<?php echo $this->Paginator->prev('<' . __(''), array(), null, array('tag' => 'a', 'separator' => '')); ?>
<?php echo $this->Paginator->numbers(array('separator' => '')); ?>
<?php echo $this->Paginator->next(__('') . '>', array(), null, array('tag' => 'a', 'separator' => '')); ?>
</div>