我想将产品模型作为参数传递给 ProductController,通常我这样做:php artisan make:model Model/Product -cr然后 laravel 会为我做魔法,但现在我分别创建了模型和控制器。我试着这样做: /** * Display the specified resource. * * @param App\Model\Product $product * @return \Illuminate\Http\Response */ public function show(Request $request, Product $product) { return $product; }.php工匠路线:列表| GET|HEAD | products/{product} | products.show | App\Http\Controllers\ProductsController@show | api,jwt.auth |.路由器Route::apiResource('/products', "ProductController");.要求http://127.0.0.1/products/23?withsomequery=yes .没有错误:-rw-r--r-- 1 www-data www-data 0 Sep 18 12:30 laravel-2019-09-18.log.以上所有代码都返回空数组,但我知道它应该返回一些东西。我希望它返回如下内容:{ id: 23 name: computer created_at: 2019-02-02 updated_at: 2019-02-02}
3 回答
千万里不及你
TA贡献1784条经验 获得超9个赞
您应该获得与该路线相关的所有路线:
php artisan route:list
并找到products.show
路线来检查您是否应该在控制器中获取 $product 并删除Request $request
show()
编辑 :
Route::apiResource('/products', "ProductController") ->middleware('bindings');
绑定存在于 kernel.php 中:
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
三国纷争
TA贡献1804条经验 获得超7个赞
首先检查 Product 模型是否包含在顶部,例如
use App\Product;
还要确保产品 id 23 在您的数据库中可用。
检查您的日志文件,看看它是否产生任何错误。
还有一件事我注意到你创建了一个 apiResource 如果它的 api 路由添加 /api/ 到端点。
通过 php artisan route:list 检查所有端点
陪伴而非守候
TA贡献1757条经验 获得超8个赞
当您编写路线时会发生这种情况,不幸的是您添加了一个空格。
Route::get('/products/{product } ', "ProductController");
但是在这里您使用 apiResource 并且没有显示空间。请仔细检查所有路线,
php artisan route::list
是否存在任何其他单个product.show name 路由。当你在那之后得到这个
public function show($id) { $variable=Product::find($id); }
- 3 回答
- 0 关注
- 167 浏览
添加回答
举报
0/150
提交
取消