Я сделал аксессор для форматирования даты в моей табличной модели, и эта модель выглядит так, как аксессор
class Agent Authenticatable implements MustVerifyEmail
{
protected $appends = ['created_at_formatted'];
...
public function getCreatedAtformattedAttribute()
{
return $this->created_at->format('d-m-Y');
}
...
}
, с этим нет проблем, если я получу все данные из таблицы,
, но проблема возникает, если я беру только некоторые данные, например, я беру только phone
и email
для указания пользователя c, а столбец 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
}
]
Что я хочу, так это как игнорировать включенный метод доступа, когда выбирается только указать столбец, которому нечего сделать с аксессором,
например, я просто хочу получить phone
и email
, а не для created_at_formatted