使用pyro插件将调用变量发送到查询中

时间:2014-02-25 10:11:25

标签: codeigniter pyrocms

我有一个插件,根据表格,投资组合类型等中的数字获取不同的项目。

到目前为止,类型正在工作,但我无法使限制偏移工作,这是代码点火器。

        $type = $this->attribute('type', '');
        $portfolioNum = $this->attribute('portfolioNum', '');

        if ($portfolioNum !=0){
            $portfolioNum = settype($portfolioNum, "integer");
        }   

            $data = $this->db->select('portfolio.*, artists.artist_name event_title, artists.artist_slug event_slug')
                    ->from('portfolio')
                    ->where('portfolio_type', $type) 
                    ->where('portfolio_selected', 'Selected')
                    ->limit(1, 0)
                    ->join('artists_portfolio', 'portfolio.id = artists_portfolio.portfolio_id', 'LEFT')
                    ->join('artists', 'artists.id = artists_portfolio.row_id', 'LEFT')
                    ->get()
                    ->result();

这很好用,使用portfolio_type获取表格中的第一项。

当我尝试添加变量而不是偏移量0时,它会中断。

        $type = $this->attribute('type', '');
        $portfolioNum = $this->attribute('portfolioNum', '');

        if ($portfolioNum !=0){
            $portfolioNum = 1;
        }   

            $data = $this->db->select('portfolio.*, artists.artist_name event_title, artists.artist_slug event_slug')
                    ->from('portfolio')
                    ->where('portfolio_type', $type) 
                    ->where('portfolio_selected', 'Selected')
                    ->limit(1, $portfolioNum)
                    ->join('artists_portfolio', 'portfolio.id = artists_portfolio.portfolio_id', 'LEFT')
                    ->join('artists', 'artists.id = artists_portfolio.row_id', 'LEFT')
                    ->get()
                    ->result();

并在模板中调用

{{TheSitePlugin:getSelected type="Production"  portfolioNum="1"}}{{/TheSitePlugin:getSelected}}

1 个答案:

答案 0 :(得分:2)

我很确定问题出在这些方面:

if ($portfolioNum !=0){
  $portfolioNum = 1;
} 

从我看到的情况来看,$ portfolioNum永远不会为0,因此总是设置为0.

更改

$portfolioNum = $this->attribute('portfolioNum', '');

$portfolioNum = $this->attribute('portfolioNum', 0);

并删除整个if子句。这样,如果没有将portfolioNum设置为标记属性,则Plugin类的属性函数将$ portfolioNum设置为0。

但是你仍然可能想检查一下,如果portfolioNum实际上是一个整数而不是什么。 也许als将portfolioNum重命名为“offset”,因为它就是它。