Laravel Eloquent - 查找特定月份的所有记录

时间:2015-11-08 07:43:35

标签: php mysql laravel eloquent

我有以下路线。

Route::get('/blog/{search}/{slug}', array(
    'as' => 'public-blog-filter',
    function ($search, $slug) {

      if($search == 'search' ) {
        $search = 'title';
      } elseif($search == 'category') {
        $search = 'blog_category_id';
      } elseif($search == 'archives') {
        $search = 'published_at';
      }

      //$blogArticleId = trimIdFromSlug($slug);
      $blogPosts = Bugz\BlogArticle::where($search, 'LIKE', $slug)->get();

      dd($blogPosts);

      //show the page:
      $viewData = array(
          'metaTitle'         => 'Blog | ' . config('app.name'),
          'metaSectionJs'     => 'public-blog-single',
          'metaSectionParent' => 'public-blog-single',
          'metaSectionUrl'    => '/blog/{slug}'
      );

      return view('public.blog', compact('viewData', 'blogPosts'));

    }
));

在我的博客中,人们可以通过档案,类别或搜索过滤博客文章。

深化他们搜索的内容,我将$ search变量更改为数据库表中的一列。那么slu is就是我正在寻找的字符串。

如果我点击" 2015年10月"那么URL是: 的 /博客/存档/ 2015-10

在数据库中,记录存储为 2015-10-31 11:32:00

但是,即使published_at列包含包含我正在寻找的字符串的记录,查询也不返回任何内容。

1 个答案:

答案 0 :(得分:2)

这只是一件小事,您需要在查询中添加通配符:

  $blogPosts = Bugz\BlogArticle::where($search, 'LIKE', $slug.'%')->get();

所以这将查找从2015-10开始的日期。

相关问题