Laravel 5.4 Eloquent由sql字段计算

时间:2017-07-20 13:39:31

标签: laravel eloquent

如何在模型中追加属性,由sql计算?

我试过这个:

protected $appends = ['comment_qty'];
public function getCommentQtyAttribute()
{
    return DB::raw("(select 1) as comment_qty");
}

它不能正常工作

2 个答案:

答案 0 :(得分:0)

在模型上定义mutator方法setCommentQtyAttribute,其中comment_qty是您的自定义列名。

请看下面的内容......

class Comment extends Eloquent {

    protected $table = 'comments';
    protected $appends = array('comment_qty');

    public function setCommentQtyAttribute()
    {
        return DB::raw("(select 1) as field");
    }
}

有关详细信息:Accessors and mutators

答案 1 :(得分:0)

另一个解决方案,添加到模型。

protected static function boot()
{
    parent::boot(); // TODO: Change the autogenerated stub
    static::addGlobalScope('any', function (Builder $builder) {
       $builder->select(['*', DB::raw("'any' as any")]);
    });
}