Laravel/Lumen API 打印记录数组

Laravel/Lumen API print array of records

是否可以制作一个 API 来打印这样的数据库记录: http://localhost:8000/products/?compare=1-2-N...(1,2,N) product id's. 我只成功打印了一条记录。我的路线:

$router->get('products/{id}','ProductController@getProduct');

和我的控制器:

public function getProduct($id){

        $tlt_products = DB::table('tlt_products')->find($id);
        $tlt_products_features_id = DB::table('tlt_product_features')->where('product_id', $id)->get()->pluck('feature_id');
        $tlt_features = DB::table('tlt_features')->whereIn('id', $tlt_products_features_id)->get()->groupBy('feature_group');
        $tlt_feature_groups =  DB::table('tlt_features')->groupBy('feature_group')->get()->toArray();

        return response()->json([
            'product' => $tlt_products,
            'product_features' => $tlt_features,
            'feature_groups' => $tlt_feature_groups
        ]);

    }

你能帮我使用这样的路由打印记录数组吗:

http://localhost:8000/products/?compare=1-2-3...-N

是的,这是可能的。您可以尝试通过 get 传递一个模式并解析它以检索您需要的信息,但为什么不使用一种简单的方法来做到这一点,例如:

$router->get('products/{begin}/{end}','ProductController@getProduct');

一切你想要的,只要设计好,在你的控制器中,你就有了

public function getProduct($begin,$end){
...
}

我终于设法使用 $tail = $request->tail; 方法解决了这个问题,并在我的表单操作中添加了这样的请求 ID

@php
$tail = basename(request()->path());
$text = (string)$tail; 
@endphp

<form action="/product-compare/{{$text}}-{{ $product['id'] }}" method="post">