Объект класса Closure не может быть преобразован в строку в laravel - PullRequest
0 голосов
/ 11 марта 2020

Объект класса Closure не может быть преобразован в строку в 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');

1 Ответ

0 голосов
/ 11 марта 2020

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

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

return view('posts.archive', compact('archiveposts'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...