Я новичок в cakephp2, и я нашел решение.
Проблема в том, что у меня есть список ссылок в CakePHP2, как это
Но проблема в том, что я хочу отобразить количество содержимого, как в примере ниже
Для такого человека, как я, это слишком сложно. Я не знаю, как реализовать количество списков или содержимого в ссылке или как это назвать. Было бы здорово, если такие профессионалы, как вы, могут мне помочь!
Извините за мой плохой английский.
Вам, вероятно, понадобится установка HABTM, например так:
Class Tag extends AppModel {
public $name = 'Tag';
public $hasAndBelongsToMany = array(
'Article' => array(
'className' => 'Article',
'joinTable' => 'articles_tags',
'foreignKey' => 'tag_id',
'associationForeignKey' => 'article_id',
)
);
}
Class ArticlesTag extends AppModel {
public $name = 'ArticlesTag';
}
Class Article extends AppModel {
public $name = 'Article';
public $hasAndBelongsToMany = array(
'Tag' => array(
'className' => 'Tag',
'joinTable' => 'articles_tags',
'foreignKey' => 'article_id',
'associationForeignKey' => 'tag_id',
)
);
}
Добавьте следующее в вашу AppModel, вы никогда не будете оглядываться назад:
class AppModel extends Model {
public $actsAs = array('Containable');
}
В контроллере:
$results = $this->Tag->find('all, array(
'contain' => array('Article)
));
$this->set('results', $results);
Ввиду:
<ul class="tags">
<?php foreach ($results as $data) : ?>
<li class="tag"><?php
echo $this->Html->link($data['Tag']['name'] . ' (' . count($data['Article']) . ')',
'/tag/' . $data['Tag']['slug'],
array('title' => 'View articles for ' . $data['Tag']['name'], 'escape' => false));
?></li>
<?php endforeach; ?>
</ul>
Надеюсь это поможет.
Других решений пока нет …