Объект закрытия класса не удалось преобразовать в строку в laravel


Объект закрытия класса не удалось преобразовать в строку в laravel

11.03.2020 12:58:08 Просмотров 56 Источник

Объект закрытия класса не удалось преобразовать в строку в laravel, я пытаюсь получить сообщение по месяцам и годам

вот контроллер

public function getPostsByArchive($slug)
{
   $archiveposts = \Canvas\Post::whereDate('published_at', date('F-Y'),function ($query) use ($slug) {
                $query->where('published_at', date('F-Y'), $slug);
            })->published()->orderByDesc('published_at')->get();
      return view('posts.archive', compact('archiveposts'));
}

вот маршрут

Route::get('archive/{slug}', 'PostController@getPostsByArchive')->name('posts.archive');
У вопроса есть решение - Посмотреть?

Ответы - Объект закрытия класса не удалось преобразовать в строку в laravel / Object of class Closure could not be converted to string in laravel

Является ответом!
Hafez Divandari

11.03.2020 02:30:07

Вы неправильно используете whereDate, передавая закрытие как 3-й arg, что приводит к ошибке. Вместо этого вы можете использовать whereRaw и форматировать свой столбец published_at с помощью функции MySQL date_format:

$archiveposts = \Canvas\Post
        ::whereRaw("date_format(published_at, '%M-%Y') = ?", [$slug])
        ->published()
        ->orderByDesc('published_at')
        ->get();

return view('posts.archive', compact('archiveposts'));
Помочь в развитии проекта:
Закрыть X