Как вернуть объект вместо объекта в массиве

Я пытаюсь вернуть ответ объекта, который пришел из массива коллекции из-за отношения 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);
}
Другие вопросы по тегам