Задать вопрос
@rsvega

Как исправить ошибку?

Возникает ошибка Error Call to a member function goods() on null , при переходе на страницу, при этом возникает в той функции контроллера, которая никак не связана со страницей

public function getGoodsByCategory($slug){
        $categories = Category::orderBy('title')->get();
        $current_category = Category::where('slug',$slug)->first();

        return view('pages.index', [
            'goods' => $current_category->goods()->paginate(4),
            'categories' => $categories,
        ]);
    }

ругается на это фрагмент кода, а если конкретнее, на тот, что с пагинацией
по идее должны работать только эти функции при переходе на эту страницу

public function RequestCategory(){
        return view('pages.requestcategory');
    }

public function RequestCategoryCheck(Request $request){
        $valid = $request->validate([
            'title' => 'required',
            'slug' => 'required',
        ]);
        $review = new category();
        $review->title = $request->input('title');
        $review->slug = $request->input('slug');

        $review->save();

        return redirect()->route('RequestCategory');
    }
  • Вопрос задан
  • 94 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@sl0
А что в ошибке непонятного? По такому слагу нет категории, соответственно и получить продукты из нее не выходит.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
pOmelchenko
@pOmelchenko
php-developer
$current_category = Category::where('slug',$slug)->first();

Воспользуйся таким способом

https://laravel.com/docs/8.x/routing#customizing-t...
Route::get('/posts/{post:slug}', function (Post $post) {
    return $post;
});


Если slug'а нет, то контроллер закончит работу через ответ с 404

Или же используй firstOrFail() что тоже приведет к 404 если ничего не найдет
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы