获取另一个控制器上生成的数据

发布于 2024-11-14 19:37:26 字数 835 浏览 1 评论 0原文

我有一个简单的逻辑问题。我开始使用 CodeIgniter,现在我了解了控制器的概念。例如,视图仅用于生成内容(而不是预处理数据),控制器用于获取需要查看的所有信息。美好的。

我的问题是:我有一个来自 iframe 的名为 /poll/1 的民意调查,我喜欢在其他时刻在另一个控制器上打印它。该路径相对于 Poll::index(1) (逻辑上讲),并且我位于 Content::index() 上。

我在 CI UserGuide 上没有找到类似情况的解释。

我怎么办?

谢谢。

编辑:我将编写一个示例代码:

class Blog extends CI_Controller {
    function index(){
         // Do some prints
         // Executes Poll::index(1), but store on some string
         // Do some prints
    }
}

class Poll extends CI_Controller {
    function index($id){
         // Do some prints
    }
}

其想法是:/poll/1 可以工作,/blog 也可以(但是这一秒将打印更多内容,并进行民意调查)。

I have a simple logic problem. I'm starting on use CodeIgniter and I'm understand the Controller concept now. The view, for instance, is used only to generate content (not pre-proccess data), controller to get all infos need to view. Fine.

My problem is: I have a poll that is called as /poll/1 from an iframe, and I like to print it in other moment on another controller. This path is relatives to Poll::index(1) (logically talking) and I'm on Content::index().

I don't found explanation for cases like that on the CI UserGuide.

How I do?

Thanks.

Edit: I'll do an example code:

class Blog extends CI_Controller {
    function index(){
         // Do some prints
         // Executes Poll::index(1), but store on some string
         // Do some prints
    }
}

class Poll extends CI_Controller {
    function index($id){
         // Do some prints
    }
}

The idea is that: /poll/1 works and /blog too (but this second will print more content, with the poll).

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

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

发布评论

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

评论(2

半步萧音过轻尘 2024-11-21 19:37:26

嗯,有趣的是,我认为使用 ob_start() 可能适合你,如果是我,我宁愿使用 ajax 调用来显示轮询数据,

这里是代码。

class Blog extends CI_Controller {
    function index(){
         // Do some prints

         // Executes Poll::index(1), but store on some string
         ob_start();
            Poll::index(1)

            // You can now use this $output value to display or store in db or store in session, 
            // but remember CI session can only hold upto certain length as it uses cookie
            $output = ob_get_contents();
        ob_end_clean();

         // Do some prints
    }
}

class Poll extends CI_Controller {
    function index($id){
         // Do some prints
    }
}

hummm interesting i think using ob_start() might just work for you, if it was me i would rather use a ajax call to display poll data

here is the code.

class Blog extends CI_Controller {
    function index(){
         // Do some prints

         // Executes Poll::index(1), but store on some string
         ob_start();
            Poll::index(1)

            // You can now use this $output value to display or store in db or store in session, 
            // but remember CI session can only hold upto certain length as it uses cookie
            $output = ob_get_contents();
        ob_end_clean();

         // Do some prints
    }
}

class Poll extends CI_Controller {
    function index($id){
         // Do some prints
    }
}
美男兮 2024-11-21 19:37:26

我最喜欢的一种方法是使用一个超类,这样 Poll 类就可以扩展博客。这使您的民意调查可以利用您的博客方法。然后,您可以使用任何父方法并在您想要的任何 class#method 中加载适当的视图。

One way which is my favorite is use one as a super class so class Poll extends blog. This allows your poll to take advantage of your blog methods. Then you can use any parent methods and load the proper views in which ever class#method you want.

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