【发布时间】:2018-07-03 16:25:46
【问题描述】:
全部!!
我正在尝试在 Laravel 5.5 中开发一个 API,我真的坚持这一点:
我有这条路线:
Route::get('products', 'ProductController@index'); ==> Works OK
Route::get('product/{id}', 'ProductController@show'); ==> Works OK
Route::get('product/{barcode}', 'ProductController@productByEan'); ==> Fail
使用这些方法:
public function index()
{
$product = Product::paginate(15);
return ProductResource::collection($product);
}
public function show($id)
{
$product = Product::findOrFail($id);
return new ProductResource($product);
}
以下是相同的逻辑,我使用 id 创建了 show 方法来获取我的产品,它工作正常,但是当我创建一个名为 productByEan 的新方法来使用 EAN13(条形码)而不是使用此方法的 id 获取产品时 (使用带有此 URL 的邮递员:http://ws.barcode.primerbit.com/api/product/9440396613933):
public function productByEan($barcode)
{
$response = Product::where('barcode',$barcode);
return new ProductResource($response);
}
获取“抱歉,找不到您要查找的页面” 我不知道发生了什么,所以如果有人可以帮助我,我将非常感谢。
提前致谢!!
【问题讨论】:
-
非常感谢!!我会尽一切努力,看看会发生什么,但我忽略的一个小细节是产品 id 它' pk 但条形码是同一张表上的另一个字段。我可以使用带有非 pk 字段的 show 方法吗?
标签: laravel api routes postman