我一直在关注敏捷工具包提供的这本书,并在此部分: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'));
}
}谢谢!
发布于 2012-08-28 10:15:37
DSQL应用程序教程适用于Agile Toolkit 4.1。
请观看截屏视频http://youtube.com/theagiletoolkit,以获得更新和更广泛的教程。
https://stackoverflow.com/questions/12133890
复制相似问题