2015-11-08 86 views
0

我有以下路线。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')); 

    } 
)); 

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

深化他们搜索的内容,我改变了$搜索变量在数据库表中的列。那个slu then是我正在寻找的弦。

如果我点击 “2015年10月”,那么URL是: /博客/档案/ 2015-10

在数据库中的记录被存储为2015年10月31日11:32: 00

然而,查询不返回任何东西,即使published_at列包含包含我正在寻找的字符串的记录。

回答

2

这只是一个次要的事情,你需要将通配符添加到您的查询:

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

所以这会寻找开始2015-10日期。

+0

边注:这当然也会影响按类别和标题搜索,所以如果你有两类共享一个前缀,如“流”和“花”,你会发现两者如果选择类别“流”。 – svrnm

相关问题