【问题标题】:how do i use date mutators or carbon in sql queries我如何在 sql 查询中使用 date mutators 或 carbon
【发布时间】:2014-11-02 16:30:33
【问题描述】:

如果我有一个从 DB::Select 返回的 sql 查询,我如何为我的 created_at 属性返回 Carbon 对象?

我希望能够做类似的事情:

$result = DB::select(DB::raw("SELECT X,Y,Z,tabletwo.created_at FROM tableone LEFT JOIN tabletwo ON tableone.X = tabletwo.foreignX"));

   foreach($result as $row)
   {

      $row->created_at->timezone(Auth::user()->timezone);

   }

我已经尝试将字段添加到我的模型上的 getDates 方法中,但它并没有什么不同 - 我假设它是自定义 sql 查询并且不返回对象。

【问题讨论】:

    标签: php laravel php-carbon


    【解决方案1】:

    DB::select 返回 stdObjects 的数组,而不是 Eloquent Models,因此您不能使用 Eloquent 功能。

    假设 created_at 是 MySQL 时间戳/日期字段,您可以这样做:

    $timestamp = new Carbon\Carbon($row->created_at);
    $timestamp->timezone(Auth::user()->timezone);
    

    【讨论】:

    • 这是我最终做的,但更多的是内联视图。 {{Carbon\Carbon::createFromFormat('Y-m-d H:i:s',$token->redeemed_at)->timezone(Auth::user()->timezone)}}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 2013-08-03
    • 2014-11-15
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多