Laravel 9惯性分页

e0bqpujr  于 2023-03-04  发布在  其他
关注(0)|答案(1)|浏览(136)

我有订单功能,其中它显示了与订单相关的项目,我想做的是,只分页订单内的项目。

public function order()
{
    $orderId = request()->get('id', 0);
    $order = null;
    $order = OrderItem::with(['items'])->find($orderId);

    if ($orderId != 0) {
        if ($order == null) {
            return Inertia::render('IDashboard/utils/IError');
        }
    }

    return Inertia::render(
        'Orders/IData',
        ['order' => $order]
    );
}

我试过:

public function order()
{
    $orderId = request()->get('id', 0);
    $order = null;
    $order = OrderItem::find($orderId);

    if ($orderId != 0) {
        if ($order == null) {
            return Inertia::render('IDashboard/utils/IError');
        }
    }

    $items = Item::where('order_item_id', $orderId)->paginate(10);

    return Inertia::render(
        'Orders/IData',
        ['order' => $order, 'itemsList' => $items]
    );
}

但另一个例子中的问题是,当在Vue组件中进行分页时,点击page 2,它不会显示任何信息。

props: {
    is: Function,
    order: Object,
    orderItems: Object,
    itemsList: Object,
},
<IItemCalculate
   v-for="(
       item, index
       ) in orderItems"
       :order="order"
       :item="item"
       :key="index"/>
<IPagination :links="itemsList.links" /> //general pagination component:

我使用的路径是:

Route::get('/order', 'App\Http\Controllers\ItemController@order')->name('order');

错误,错误是,在给出第二页,或者下一页的时候,内容没有显示,或者错误是,在给出第二页,或者下一页的时候,内容没有显示,或者当我在关系中做分页的时候,也就是$items = $order->items()->paginate(10),抛出错误,成员函数items()on null,当转到下一页的时候。
非常感谢,我了解最新情况。

xghobddn

xghobddn1#

您可以通过在路径中包含order_id来解决此问题,而不是像下面这样的查询:127.0.0.1:8000/order/1然后稍微修改控制器。

Route::get('order/{id}', [...])->name('orders');

由于您希望在order不存在的情况下呈现不同的页面,因此可以跳过Route-Model Binding

public function order($id) {
    
    $order = Order::query()->find($id);
    
    if(is_null($order)) {
        return Inertia::render('IDashboard/utils/IError');
    }

    $items = Item::query()
                ->where('order_item_id', $order->id)
                ->paginate(10);

    return Inertia::render('Orders/IData', compact('order','items'));

}

如果你真的想把order_id作为查询字符串,你可以看看这个,我还没有试过。
在分页中追加查询字符串值

相关问题