Bonjour
je suis en train de faire un tableau pour récupérer et formater les urls mais je me retrouve avec un problème pour récupérer certain champs
voici ma route
Router::connect('/page/:slug-id',array('controller'=> 'pages','action'=>'show'),array('pass' => array ('id','slug')));
et en mode debug ma requête
object(CakeRequest) {
params => array(
'plugin' => null,
'controller' => 'pages',
'action' => 'show',
'named' => array(
'slug' => 'ma-premiere-page',
'id' => '18'
),
'pass' => array()
)
je n'arrive pas à récupérer dans pass ces deux champs
'slug' => 'ma-premiere-page',
'id' => '18'
Si vous avez une idée
Merci d'avance
Au niveau de ta route, il me semble qu'il y a une erreur sur la conception du routing.
Il faudrait :slug-:id, au lieu de :slug-id :
Router::connect('/page/:slug-:id',array('controller'=> 'pages','action'=>'show'),array('pass' => array ('id','slug')));
Cela devrait résoudre le problème.
ca fonctionne merci
Petite question j'ai vu pas mal de personne revenir sur un sujet que je traite une erreur lié au menu.ctp
Warning (2): Invalid argument supplied for foreach() [APP/View/Elements/menu.ctp, line 3]
et
Declaration of Post::afterFind() should be compatible with Model::afterFind($results, $primary = false) [APP/Model/Post.php, line 3]
Ma page controller
<?php
class PagesController extends AppController {
public $uses = array('Post');
function menu(){
$pages = $this-> Post->find('all',array(
'conditions' => array('type'=>'page','online'=>1)
));
return $pages;
}
function show($id = null,$slug = null){
}
}
mon Post.php
<?php
class Post extends AppModel{
public function afterFind($data){
foreach($data as $k=>$d){
if (isset($d'Post']'slug']) && isset($d'Post']'id'])){
$d'Post']'link'] = array(
'controller' => 'pages',
'action' => 'show' ,
'id' => $d'Post']'id'],
'slug' => $d'Post']'slug']
);
}
$data$k] = $d;
}
debug($data);
}
}
mon menu.ctp
<?php $pages = $this->requestAction(array('controller'=>'pages','action'=>'menu'));?>
<ul class="nav navbar-nav">
<?php foreach($pages as $k=>$v): $v = current($v);?>
<li> <?php echo $this->Html->link($v'name'],$v'link']);?></li>
<?php endforeach; ?>
</ul>
Je n'ai pas beaucoup trouver d'infos sur ce sujet
Cdt