【问题标题】:Agile Toolkit addExpression and DSQL敏捷工具包 addExpression 和 DSQL
【发布时间】:2012-08-26 21:01:48
【问题描述】:

我一直在关注敏捷工具包提供的这本书,并且在这一部分: http://agiletoolkit.org/learn/app/logic

不幸的是,dsql api 不够清晰,并且该页面上的计算字段示例无法正常工作。

我尝试使用:

class Model_DVD extends Model_Table {

        public $table='dvd';

    function init(){
        parent::init();

        $this->hasOne('Movie');
        $this->addField('code');
        $this->addfield('is_rented')
            ->type('boolean')
            ->calculated(true);
    }

    function calculate_is_rented(){
        return $this->add('Model_Rental')
            ->dsql()
            ->field('id')
            ->where('rental.dvd_id=dvd.id')
            ->where('is_returned!=','Y')
            ->select()
            ;
    }
}

每次都会返回 1,所以我尝试遵循: Calculated field always returns 1 - atk 4.2

现在我不确定如何正确创建它;我知道以下工作,但我在去的时候有点编造它并且不知道它为什么工作,以及为什么我需要 count() - 等等。

如何让计算字段工作?有人可以在这个例子中解释一下吗,我通过例子学得最好,所以我想继续它。

我不明白的工作代码:

class Model_DVD extends Model_Table {

    public $table='dvd';

    function init(){
        parent::init();

        $this->hasOne('Movie');
        $this->addField('code');

        $this->debug();

        $this->addExpression('is_rented')->set($this->add('Model_Rental')
                                                    ->addCondition('dvd_id', $this->_dsql()->getField('id'))
                                                    ->count()
                                                    ->where('is_returned!=','Y'))
                                                    ->datatype('boolean')
                                                    ->enum(array('Y', 'N'));
    }
}

谢谢!

【问题讨论】:

    标签: frameworks atk4 php


    【解决方案1】:

    DSQL APP 教程适用于 Agile Toolkit 4.1。

    请观看截屏视频http://youtube.com/theagiletoolkit 以获得更新和更广泛的教程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多