CakePHP - Как передать переменную $ в функцию поиска в контроллере - PullRequest
0 голосов
/ 16 мая 2011

Все,

Я хотел знать, как я могу передать переменную $ из представления, например, идентификатор текущей статьи ($ article ['Article'] ['id']) в find ('all ') вызывает функцию в article_controller.php.

function getRelated($id = null){
$relatedarticles = $this->Article->find(
                    'all',
                    array(
                         'fields' => array(
                        'Article.title'
                        ),
                         'limit' => 4,
                         'order' => 'Article.id ASC',
                         'recursive' => 1,
                         'conditions' => array(
                        'Article.category_id =' => $id
                         )
                         )
                    );

if (!empty($this->params['requested'])) {
    return $relatedarticles;
} else {
    $this->set(compact('relatedarticles'));
}
}

А потом, с точки зрения, я бы назвал что-то вроде этого.Кажется, я не могу заставить это работать ... как лучше всего это сделать?

<div id="articles_view_related">
Related News
<?php 
    $currentid = $articles['Article']['id'];
    $relatedarticles = $this->requestAction('/articles/getRelated/id:$currentid');
    //debug($relatedarticles);
?>
<ul>
    <?php
        foreach($relatedarticles as $relatedarticle){
    ?>
    <li>
        <?php
            echo $relatedarticle['Article']['title'];
        ?>
    </li>
    <?php
        }
    ?>
</ul>

</div>

спасибо за вашу помощь

1 Ответ

2 голосов
/ 16 мая 2011

Я изо всех сил пытаюсь понять, почему вы выполняете эту задачу таким образом, но, тем не менее, вот ваш ответ:

$relatedarticles = $this->requestAction('/articles/getRelated/'.$currentid);

Вам не нужно id:$currendId, потому что параметр вваше действие, все, что после / controller / action / в URL будет объявлено как $id в getRelated($id = null); например: /articles/getRelated/23 и $id будет равно 23.


Что вы если делает, объявляет метод getRelated() в вашей модели, , а затем использует действие контроллера для получения содержимого и передачи его в представление.Например:

$relatedArticles = $this->Article->getRelated($article['Article']['id']);
$this->set(compact('relatedArticles));

Для манипулирования данными, которые вы хотите повторить, вставьте их в свои модели:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...