Мой дополнительный маршрут выглядел так:
Route::group(['prefix' => 'blog'], function ({
Route::get('/', [
'uses' => 'BlogController@showBlog',
'as' => 'show.blog'
]);
Route::get('{author}/{y?}/{m?}/{d?}/{title?}', [
'uses' => 'BlogController@showDetailBlog',
'as' => 'detail.blog'
]);
});
и его контроллер выглядел следующим образом:
public function showDetailBlog($author, $year = null, $month = null, $date = null, $title = null)
{
$user = User::where('username', $author)->first();
if(!$year && !$month && !$date && !$title) {
return view('pages.blog.author', compact('user'));
} else {
$blog = Blog::where('user_id', $user->id)->whereYear('created_at', $year)
->whereMonth('created_at', $month)->whereDay('created_at', $date)
->where('title_uri', $title)->first();
$relates = Blog::where('category_id', $blog->category_id)->orderByDesc('id')->get();
$tgl = Carbon::parse($blog->created_at);
$uri = route('detail.blog', ['author' => $user->username, 'y' => $tgl->format('Y'),
'm' => $tgl->format('m'), 'd' => $tgl->format('d'),
'title' => $blog->title_uri]);
return view('pages.blog.detail', compact('user', 'blog', 'relates', 'uri'));
}
}
Когда я запрашиваю его с полным параметром, как:
/blog/author123/2019/10/10/lorem-ipsum-dolor-sit-amet
Он вернется в подробный вид блога. Но когда я запрашиваю его только с параметром автора, например:
/blog/author123
Он не вернется к представлению автора в блоге и всегда возвращает пустой массив.
Кто-нибудь знает, чтоЯ пропустил?