產品控制器.php
class ProductController extends Controller
{
public function index(Request $request)
{
$limit = $request->has('limit') ? $request->get('limit') : 10;
$offset = $request->has('offset') ? $request->get('offset') : 0;
$products = Product::offset($offset)->limit($limit)->get();
return new ProductResource($products);
}
//Search Products
public function search($name, Request $request)
{
$limit = $request->has('limit') ? $request->get('limit') : 10;
$offset = $request->has('offset') ? $request->get('offset') : 0;
$products = Product::where('name', 'like', '%' . $name . '%')
->offset($offset)->limit($limit)->get();
return new ProductResource($products);
}
}
產品資源.php
class ProductResource extends JsonResource
{
public function toArray($request)
{
foreach ($request->all() as $product) {
$response = [
'id' => "p" . $product->id,
'name' => $product->name,
'slug' => $product->slug,
'regular_price' => $product->regular_price,
'sale_price' => $product->sale_price,
'SKU' => $product->SKU,
'stock_status' => $product->stock_status,
'quantity' => "p" . "$product->quantity",
'image' => $product->url,
'images' => $product->url,
'category_id' => $product->category_id,
];
$responses[] = $response;
}
return response($responses, 201);
}
}
這是我從 api ( http://127.0.0.1:8000/api/products?limit=5&offset=0 ) 發送時的獲取路由,“訊息”:“嘗試讀取字串上的屬性“id””,“檔案” :“/Applications/XAMPP/xamppfiles/htdocs/DNI_E_commerce/app/Http/Resources/ProductResource.php”,“行”:20,
uj5u.com熱心網友回復:
在您的搜索功能中,您可以只回傳從 ->get() 查詢中獲得的 $products。$products 是在資料庫中匹配搜索查詢的所有產品的 Laravel 集合。集合基本上是一個奇特的物件。https://laravel.com/docs/8.x/eloquent-collections
如果這樣做,您應該能夠按原樣使用 toArray() 函式,但您也可以只回圈遍歷集合,而無需先將其放入陣列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/372557.html
