我有以下路线。
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列包含包含我正在寻找的字符串的记录,查询也不返回任何内容。
答案 0 :(得分:2)
这只是一件小事,您需要在查询中添加通配符:
$blogPosts = Bugz\BlogArticle::where($search, 'LIKE', $slug.'%')->get();
所以这将查找从2015-10开始的日期。