С дублировать контролер не получается

140
07 декабря 2018, 02:10
    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

Answer 1

Зачем столько дублирования из-за 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. А вообще не вижу фильтр в экшене с разделением на старые и новые посты.

Answer 2

Вы в роутах не указали параметр /{id}

Route::get('oldposts/{id}', 'HomeController@oldposts');
Route::get('posts/{id}', 'HomeController@posts');
READ ALSO
поменять - на , в array php

поменять - на , в array php

у меня есть array

152
Аналог CreateDirectoryA для Linux

Аналог CreateDirectoryA для Linux

Посоветуйте аналог CreateDirectoryA для ЛинуксаЗаранее спасибо

199
Программа странно работает

Программа странно работает

столкнулся с тем, что у меня программа работает неправильно если я "просто" запускаю её на выполнениеНо если поставить в IDE брейкпоинты, то она...

198
Битовые операции, проверка битов

Битовые операции, проверка битов

Использую битовые операции для опций в GUI, возникла необходимость проверить установлен ли хоть 1 битПравильно ли я понимаю что если число...

176