Как я могу вызвать метод контроллера в представлении или другой контроллер? - PullRequest
0 голосов
/ 15 октября 2010

У меня есть главный контроллер, который печатает главную страницу.

<?

class Main extends Controller {

    function Main()
    {
        parent::Controller();

        $this -> load -> helper('date');
    }

    function index()
    {
        $this -> load -> view('header');
        $this -> load -> view('main');
        $this -> load -> view('footer');
    }
}

?>

И у меня есть контроллер статей, который печатает 6 последних статей.

<?php

class Articles extends Controller
{
    function Articles()
    {
        parent::Controller();
    }

    function top()
    {
        $this -> db -> limit(0, 6);
        $query = $this -> db -> get('articles');

        $data['articles'] = $query -> result();

        $this -> load -> view('articles-top', $data);
    }

?>

Вид заголовка выглядит следующим образом:

<html>
    <head>
    ...
    </head>
    <body>

        <div id="last-articles">
            <!-- Here I want print last 6 articles -->
        </div>

        <div id="content">

Как напечатать последние статьи в виде заголовка?

Ответы [ 2 ]

0 голосов
/ 19 октября 2010

Ключи массива в вашем массиве $ data становятся переменными в представлении.

Руководство пользователя *1003* очень полезно.

Вы можете сделать что-то подобное на ваш взгляд:

<html>
<head>
...
</head>
<body>

    <div id="last-articles">
        <?php 
            foreach($articles as $article)
            {
                echo $article.title;    //obviously these would be the real fields
                echo $article.content;  //from your article table.
            }
        ?>
    </div>

    <div id="content">
0 голосов
/ 17 октября 2010

Вы все делаете неправильно.

Ваши контроллеры должны иметь функции с такими именами ...

public function action_youractionname($value='')
{
   $array_of_data_for_view = array( 'data' => $some values );
   echo View::factory( 'viewfilename', $array_of_data_for_view )->render();
}

Ваше представление может использовать переменную $ data.

Надеюсь, это поможет, но я бы предложил этот сайт .. http://kerkness.ca/wiki/doku.php

Это было неоценимо для меня.

удачи!

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