脚本宝典收集整理的这篇文章主要介绍了php – 如何将派生列添加到我的Yii模型中?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,假设我有一个ActivITy模型.活动只有两种:(1)收入,或(2)费用.
如果我想添加一个名为income_total或expense_total的列(取决于正在访问的活动类型),我该怎么做?
这是Ruby on Rails中的Activity模型的一个工作示例(我基本上想知道如何做同样的事情,但在Yii中):
class Activity < ActiveRecord::Base attr_accessible :name,:effective_at,:amount,:category scoPE :incomes,:conditions => { :category => 'Income' } scope :expenses,:conditions => { :category => 'Expense' } def self.incomes_total incomes.sum :amount end def self.expenses_total expenses.sum :amount end end
更新2012-07-01:
answer provided by Leonardo指向使用Virtual Attributes,这为我从数据库中检索的结果集的每个“行”添加了一个属性.
如果Activity模型与Parent具有BELONGS_TO关系,则父视图可能如下所示:
<h2><?PHP echo $parent->name; ?></h2> <ul> <?PHP foreach($portfolio->activities as $activity): ?> <li> <?PHP echo CHtML::link($activity->name,array('activity/view','id' => $activity->id)); ?> <?PHP echo $activity->amount; ?> <?PHP echo $activity->incomes_total; ?> </li> <?PHP enDForeach; ?> </ul>
但是,在foreach()循环中访问此虚拟属性没有意义.
我想要的这些虚拟属性为整个结果集提供一个“聚合”值,因此我希望能够使用$parent-> activities-> incomes_total访问它,如下所示:
<h2><?PHP echo $parent->name; ?></h2> <?PHP echo $parent->activities->incomes_total; ?> <ul> <?PHP foreach($portfolio->activities as $activity): ?> <li> <?PHP echo CHtml::link($activity->name,'id' => $activity->id)); ?> <?PHP echo $activity->amount; ?> </li> <?PHP endforeach; ?> </ul>
以上是脚本宝典为你收集整理的php – 如何将派生列添加到我的Yii模型中?全部内容,希望文章能够帮你解决php – 如何将派生列添加到我的Yii模型中?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。