将对象从一个函数传递给另一个函数

时间:2014-03-05 18:27:34

标签: php function codeigniter

我正在使用Codeigniter,这是我的问题:

我显示有关产品的一些信息,其中包括产品的名称,日期和描述。在描述中,当长度超过100个字符时,我会使用“..See More”。

问题是,在我的代码中,当用户点击“查看更多”以查看完整的产品描述时,我面临的问题是我不知道如何将整个产品对象从一个功能发送到另一个功能。请参阅代码段:

foreach ($this->data['smallprizes'] as $key => $value) {

            if(strlen($value->description)>100){
                $stringCut = substr($value->description, 0, 100);
                $string = substr($stringCut, 0, strrpos($stringCut, ' ')).'...'; 
            }else{
                $string = $value->description;
            }

            $string = $string .'<a href= benefitSummary/'.$value->id.'>Leer Más</a>';
            $sp[$value->id]['id'] = $value->id;
            $sp[$value->id]['title'] = $value->title;
            $sp[$value->id]['descrip'] = $string;
            $sp[$value->id]['creation_date'] = $value->creation_date;
            $sp[$value->id]['start_date'] = $value->start_date;
            $sp[$value->id]['end_date'] = $value->end_date;
            $sp[$value->id]['stock'] = $value->stock;

            if ($value->status == 1) {
                $status = 1;
            }else{
                $status = 0;
            }

            $sp[$value->id]['status'] = $status;

            $this->data['sp'] = $sp;
        }

我要发送整个对象的函数是benefitSummary。我正在href中发送产品ID。

如何在benefitSummary函数中获取整个产品对象?

提前致谢。

学家

2 个答案:

答案 0 :(得分:0)

据我所知,您可以序列化对象并通过URL发送(或作为POST请求)。

链接到文档: http://us2.php.net/manual/en/function.serialize.php

基本上,这会将一个对象转换为一个编码的字符串,可以在另一侧进行交互以获得它的值。

答案 1 :(得分:0)

你可以像在你所展示的功能中获得它一样。并且您不能通过URL传递对象,但您可以加载它并从数据库数据构建它。无论如何都不需要发送所有数据,因为您已经在其他地方获得了这些数据。

所以这意味着你将一个id作为参数发送到你的benefitSummary控制器方法(你正在做的事情),然后在那里使用它来获取你需要的所有数据的相应数据库条目(最好使用模型与数据库进行通信。)