我已经在我的表格模型上制作了用于格式化日期的访问器,这是我的模型对于访问器的外观

class Agent  Authenticatable implements MustVerifyEmail
{
    protected $appends = ['created_at_formatted'];

    ...

     public function getCreatedAtformattedAttribute()
     {
         return $this->created_at->format('d-m-Y');
     }
   ...
}

如果我从表中检索所有数据,则没有问题,

但是如果我只获取一些数据就会出现问题,例如,我只获取特定用户的phoneemail ,并且不涉及created_at列,

而且,我对控制器的查询如下所示:

    public function getAgentDetail($id)
    {
        $agDetail = Agent::where('id','=' ,50)->get(['phone','email']);
        return response()->json($agDetail);
    }

上面的查询给了我一个错误:

Symfony\\Component\\Debug\\Exception\\FatalThrowableError

Call to a member function format() on null

我认为这是因为没有给访问器赋值(在本例中为created_at ),所以我将模型上的访问器更改为:

    public function getCreatedAtformattedAttribute()
    {
         $this->created_at
                ? $this->created_at->format('d-m-Y')
                : null;
    }

它只给出一个条件,如果它没有设置,它将返回一个空值,错误消失并返回这个集合:

[
  {
    phone: "086741111111",
    email: "example@jab.com",
    created_at_formatted: null
  }
]

我想要的是,如何在只选择指定列时忽略涉及的访问器,这与访问器无关,

例如,我只想获取phoneemail ,而不是created_at_formatted

#1楼 票数:2 已采纳

删除以下行并重试:

protected $appends = ['created_at_formatted'];

可以在不附加它们的情况下调用访问者。 此外,您可能希望将函数名称更改为getCreatedAtFormattedAttribute以遵守 Laravel 的约定。

  ask by Ridwan Maulana Tanjung translate from so

未解决问题?本站智能推荐:

1回复

如何在使用Accessor时在口才的Laravel中设置其他自定义属性

我试图在Laravel模型中使用Accessor时设置其他自定义属性。 示例:我正在计算促销价格并设置此新属性,但另外想使用相同的逻辑设置“ $promo = 1 || $promo = 0 ”。 非常有逻辑的例子。 真正的逻辑要深入得多,这就是为什么我不想复制访问器: 我可以轻松
1回复

无法针对Laravel中的多个模型进行身份验证

我正在尝试为我的应用程序中的超级管理员和用户(单独的表)设置身份验证,但是它的行为不符合预期。 对User模型的身份验证可以正常工作,但对Superadmin模型则不能。 我的模型如下: User.php: Superadmin.php: 我的config / auth.php
3回复

如何访问laravel查询结果中的列

我的控制器Undefined property: Illuminate\\Database\\Eloquent\\Collection::$created_at出现错误Undefined property: Illuminate\\Database\\Eloquent\\Collection::
3回复

如何使用laravel进行条件查询?

你好朋友,我需要帮助,我的问题是我需要检查收藏夹表中是否已经存在某些数据,这些数据无法再次添加,例如,想要添加先前注册的促销的用户不允许他添加再来一次。 但是我需要满足的条件是,如果user_id = 9的用户在“ promocion_id = 30”的收藏夹表中输入了促销,他将无法重新输入该
3回复

Laravel-查询,进行搜索

好的,我正在我的 Laravel 项目中进行搜索,并且我正在使用whereBetween子句,但它无法正常工作。 让我展示代码而不是解释。 所以这是我的SearchController搜索功能: 在我的search.blade.php : 所以我将这两个输入命名为from和to 。 例如,我有三个汽
1回复

Laravel-在“hasMany”查询中仅选择某些列

我有一个当前有效的查询,但是,它返回的数据远远超出我的需要。 询问 例如,如果我想只能选择viewed出来的列alerts ,是否可以在此查询来实现的。 我使用::with来利用Laravel的急切加载功能。 非常感谢。
1回复

Laravel雄辩的查询为某些列返回null

我有以下口才的查询: 这是Eloquent生成的RAW SQL查询: 该查询运行正常,但对于结果的每一行,返回的起始,绘制,离开,上方和下方列的值均为空。 但是,如果我得到Eloquent刚刚运行并在PhpMyAdmin中执行它的原始SQL,则所有这些字段都具有值。 当Laravel
2回复

Laravel如何在Eloquent中按列查询行

在Laravel中,我可以通过Laravel查询从MySQL中的选定列获取行。 但是,我想知道如何使用Eloquent写这个?