Php 类闭包的对象无法转换为laravel中的字符串

Php 类闭包的对象无法转换为laravel中的字符串,php,laravel,Php,Laravel,类闭包的对象无法转换为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'),

类闭包的对象无法转换为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');

您错误地使用了
whereDate
,将闭包作为第三个参数传递会导致错误。相反,您可以使用MySQL的函数在列中使用并格式化您的
发布内容:

$archiveposts=\Canvas\Post
::whereRaw(“日期格式(发布于,'%M-%Y')=?,[$slug])
->已出版()
->orderByDesc('published_at')
->get();
返回视图('posts.archive',compact('archiveposts');

您在哪一行收到错误?请指定错误。行内没有错误,我在整个函数中遇到错误