如何在视图或另一个控制器中调用控制器方法?

发布于 2024-09-27 10:24:53 字数 1093 浏览 6 评论 0原文

我有主控制器,用于打印主页。

<?

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">

如何在标题视图中打印最后一篇文章?

I have main controller, that print main page.

<?

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');
    }
}

?>

And I have controller of articles, that print 6 last articles.

<?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);
    }

?>

Header view looks like this:

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

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

        <div id="content">

How can I print last articles in header view?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

放手` 2024-10-04 10:24:53

$data 数组中的数组键成为视图中的变量。

Code Igniter 用户指南非常有用。

在你看来,你可以做这样的事情:

<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">

The array keys in your $data array become variables in the view.

The Code Igniter User Guide is very useful.

You can do something like this in your view:

<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">
情深已缘浅 2024-10-04 10:24:53

你都做错了。

您的控制器需要具有这样命名的函数...

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

这对我来说非常宝贵。

祝你好运!

You are doing it all wrong.

Your controllers need to have functions named like this...

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

Your view can use the $data variable.

Hope this helps, but I would suggest this site..
http://kerkness.ca/wiki/doku.php

It's been invaluable to me.

good luck!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文