当前位置: 首页 > 知识库问答 >
问题:

Laravel 7.6调用未定义的方法Illumb\Database\Eloquent\Builder::appends()

伊富
2023-03-14

我无法将结果附加到查询中。我正在使用页面上的类别筛选结果,并尝试添加分页。当用户单击类别时,只应显示与类别相关的产品,在分页时,我希望保留所选类别。我得到了这个错误:

Facade\Ignition\Exceptions\ViewException调用未定义的方法Illumb\Database\Eloquent\Builder::appends()(视图:D:\Xampp\htdocs\ProjectName\resources\views\products\index.blade.php)

我从laravel docs那里试过这个

{{ $users->appends(['category' => 'query'])->links() }}

这是我的控制器:

 public function index(Request $request)
{

    // If the category is selected
    if(request()->category) {

        $products = Product::with('categories')->whereHas('categories', function ($query){
            $query->where('slug', request()->category);
        });

        $categories = Category::all();
        $categoryName =  optional($categories->where('slug', request()->category)->first())->name;

    }else {

        $products = Product::paginate(9);
        $categories = Category::all();
        $categoryName = 'All Products';

    }

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

这是我的刀片文件

<h4>{{ $categoryName }}</h4>

                            @forelse ($products as $product)

                                <div class="card mb-3 shadow" style="">
                                    <div class="row no-gutters">

                                        <div class="col-md-4 d-flex justify-content-around p-2 border">
                                            <img src="/storage/products/{{ $product->image }}" class="card-img">
                                        </div>

                                        <div class="col-md-8 p-2">

                                            <div class="card-body">
                                                <h5 class="card-title">{{ $product->title}}</h5>
                                                <p class="card-text"> {!! \Illuminate\Support\Str::limit($product->text, $limit = 100) !!} </p>
                                                <div class=""><a href="/products/{{ $product->slug }}"><button class="btn btn-outline-warning float-left">View Cataloge</button></a>
                                                </div>
                                            </div>

                                        </div>
                                    </div>
                                </div>

                            @empty

                                <div class="card">
                                    <div class="card-title p-5 shadow bg-light">
                                        <h5>No products found</h5>
                                    </div>
                                </div>

                            @endforelse

                                <div class=" d-flex justify-content-around">
                                    {{ $products->appends(request()->input())->links() }}
                                </div>

共有1个答案

何长恨
2023-03-14

这里你缺少分页(9)也传递($ask)在闭包函数

public function index(Request $request)
{

    // If the category is selected
    if (!empty($request)) {
        $products = Product::whereHas('categories', function ($query) use ($request) {
            $query->where('slug', $request->category);
        })->paginate(9);

        $categories = Category::all();
        $categoryName =  optional($categories->where('slug', request()->category)->first())->name;

        return view('products.index')->with([
            'products' => $products, 
            'categories' => $categories,
            'categoryName' => $categoryName,
            ]);
    }
    else {

        $products = Product::paginate(9);
        $categories = Category::all();
        $categoryName = 'All Products';

        return view('products.index')->with([
            'products' => $products, 
            'categories' => $categories,
            'categoryName' => $categoryName,
            ]);

    }

}
 类似资料:
  • 嗨,下面是我的亲戚 用户模型 这是我的LoginLogs模型 我试图访问名称从用户这样 但我得到了这个错误 未定义的属性:照亮\数据库\雄辩\关系\属于::$name 编辑添加模型 现在是LoginLogout模型

  • 我正在使用Laravel 5.8,在这个项目中,我想从数据库中的一个表中删除一些数据,所以我在Blade上对其进行了编码: 这是路线: 这是WalletController的控制器销毁方法: 但是一旦我运行这个,我就会收到这个错误消息: 方法照亮\数据库\雄辩\集合::de不存在。 那么这里出了什么问题?我如何解决这个问题?

  • 我的laravel中出现了以下错误。我正在运行的网站上的日志文件。如何确定错误的来源?由于堆栈跟踪很短,我不确定从哪里开始。 [2017-07-03 16:05:13]生产。错误:异常“Symfony\Component\Debug\exception\FatalErrorException”,在/home/uksacbor/laravel projects/detection/vendor/la

  • 我有3个DB表,我没有在其中任何一个表上添加任何关系。然后我编写了以下代码: 它应该创建一个新用户,然后查看谁邀请了他,然后与邀请者创建一个共享记录。 但是当我测试它时,我得到了一个错误: 逻辑异常 关系方法必须返回类型为照明\数据库\雄辩\关系\关系的对象 打开:/home/oneinfin/public\u html/diasis/vendor/laravel/framework/src/il

  • 我正在尝试返回属于文件路由中相同案例的多个会话。php: 控制器:: SessionController.php: 模型类:: LawSession.php: 模型类:: LawCase.php: 我得到了这个错误: 关系方法必须返回类型为照明\数据库\雄辩\关系\关系的对象

  • 问题内容: 我正在尝试对页面登录进行编码,但在此错误中我处于停止状态 PLIZ在这里告诉我错了事 问题答案: 用于准备的语句。例如 您正在尝试直接在主数据库对象上执行查询。对于PDO,这意味着 您确实应该研究准备好的语句。您很容易受到SQL注入攻击的影响,并且由于您从一开始就使用PDO,因此不编写安全查询基本上是不可原谅的。