【问题标题】:How to add an sql function to a laravel eloquent model如何在 laravel eloquent 模型中添加 sql 函数
【发布时间】:2017-07-01 12:29:57
【问题描述】:

我想创建一个带有计算列的 laravel 模型。我已经看到如何在下载数据后执行此操作,但是我希望执行的计算很昂贵,但可以作为我的 sql 中的函数访问。本质上,我想在查询生成器中再添加一列,但我不确定如何去做。

查询需要类似于:

select *, my_function(ID) as my_value from my_table;

我需要得到模型的一个实例作为回报(不是原始记录集)。

我也希望避免多次查询。

谢谢。

【问题讨论】:

标签: mysql laravel-5 eloquent


【解决方案1】:

您的查询可能是这样的:

User::select([
   'users.*',
   \DB::raw('YEAR(created_at) as year')
])->get()

用你想要的任何函数替换 YEAR 函数。也应该附加到该列的结果中。

【讨论】:

  • 谢谢。这正是我所追求的
【解决方案2】:

基于 musicvicious 的回答,我最终选择了:

class User extends Model
{
...

    public function newQuery()
    {
        return parent::newQuery()->select('users.*', \DB::raw('YEAR(created_at) as year'));
    }

}

现在我可以正常获取模型了。

User::all();

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多