Как вернуть объект вместо объекта в массиве
Я пытаюсь вернуть ответ объекта, который пришел из массива коллекции из-за отношения hasMany.
Я пытался сделать возврат $block->where('date','=',$today)->first();
ошибка: вызов неопределенного метода App\BlockDate::addEagerConstraints()
public function block_dates()
{
return $this->hasMany(BlockDate::class);
}
public function schedule_block()
{
$today = Carbon::today()->toDateString();
$block = $this->block_dates();
return $block->where('date','=',$today)->first();
}
schedule_block()
должен вернуть объект BlockDate
, Если я удалю first()
, он возвращает массив с нужным объектом в. Я хотел бы просто получить объект на основе отношения. Любая помощь приветствуется.
1 ответ
Решение
Попробуй это:
public function schedule_block() {
$today = Carbon::today()->toDateString();
return $this->hasOne(BlockDate::class)->where('date','=',$today);
}