public function posts($id)
{
$posts = Post::where('category_id',$id)->orderBy('created_at','desc')->paginate(12);
$category = Category::find($id);
$menu_id = $category->id;
$year = 'created_at';
return view('posts',compact('posts','category','menu_id'));
}
public function oldposts($id)
{
$posts = Post::where('category_id',$id)->orderBy('created_at','desc')->paginate(12);
$category = Category::find($id);
$menu_id = $category->id;
return view('oldposts',compact('oldposts','category','menu_id'));
}
выдает ошибку(1/1) ErrorException Missing argument 1 for App\Http\Controllers\HomeController::oldposts()
Route::get('oldposts', 'HomeController@oldposts');
Route::get('posts/{id}', 'HomeController@posts');
Работает posts/15 хочу разделить старые и новые новости хочу в олд поставить старые <= 2018
Зачем столько дублирования из-за 1 параметра? Можно же сделать необязательный параметр, к примеру sort или любой другой и вышло бы вот так:
public function posts($id, $sort = null)
{
$posts = Post::where('category_id',$id)->orderBy('created_at','desc')->paginate(12);
$category = Category::find($id);
$menu_id = $category->id;
if ($sort !== null) { // можно добавить больше логики своей
$year = 'created_at';
}
return view('posts',compact('posts','category','menu_id'));
}
Роут был бы один:
Route::get('posts/{id}/{sort?}', 'HomeController@posts');
И так же вьюхи не нужно дублировать, тогда бы url был бы:
posts/15 - для новых
posts/15/old - для старых (вместо old можно что угодно написать, к примеру posts/15/2018, потом в action от этого значения фильтр делать)
P.S. А вообще не вижу фильтр в экшене с разделением на старые и новые посты.
Вы в роутах не указали параметр /{id}
Route::get('oldposts/{id}', 'HomeController@oldposts');
Route::get('posts/{id}', 'HomeController@posts');
Сборка персонального компьютера от Artline: умный выбор для современных пользователей