Вызов неопределенных ссылок на методы () - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь отобразить избранную игру на своей домашней странице, но получаю сообщение об ошибке:

Call to undefined method Illuminate\Database\Eloquent\Builder::links() при изменении в HomeController:

From

$home = Product::inRandomOrder()->paginate($pagination);

К

$home = Product::where('featured', 'true');

HomeController

 public function public(){

        $pagination = 9;
        $categories = Category::all();

        if (request()->category) {
            $home = Product::where('category_id', request()->category)->paginate($pagination);

            $categoryName = optional($categories->where('id', request()->category)->first())->name;
        } 
        else {

        $home = Product::where('featured', 'true');
        $categoryName = 'Featured';

        }
        return view('home.index')->with([
            'home' => $home,
            'categories' => $categories,
            'categoryName' => $categoryName,
            'mode' => 'public'
        ]);  
    }

2020_04_09_073846_create_products_table

        Schema::create('products', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('category_id')->unsigned();
            $table->string('name');
            $table->string('slug');
            $table->string('description');
            $table->string('releaseDate');
            $table->boolean('featured')->default(false);
            $table->float('price');
            $table->timestamps();
        });

{{ $homes->links() }} в home.blade. php ( в конце html, конечно)

Таким образом, каждая игра имеет значение 0, поэтому она должна отображать пустую страницу без какой-либо игры.

Пагинация работает нормально без изменения строки в HomeController, но когда я перехожу на $home = Product::where('featured', 'true');. Это не работает.

То, что я пробовал:

Поместите 5, 10 или 20 игр на 1 в столбце избранных, но с такой же ошибкой.

Поместите $home = Product::where('featured', 'true')->paginate($pagination);, но он показывает мне все игры, которые у меня есть ...

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

Попробуйте следующее:

Product::where('featured',true)
0 голосов
/ 08 мая 2020

Я думаю, что переменная home, отправляемая в представление, это $ home, а не $ homes

{{ $home->links() }} 

вместо

{{ $homes->links() }}
...