为了账号安全,请及时绑定邮箱和手机立即绑定

如何将模型作为参数传递给控制器

如何将模型作为参数传递给控制器

PHP
MM们 2022-01-14 17:18:00
我想将产品模型作为参数传递给 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 $requestshow()

编辑 :

Route::apiResource('/products', "ProductController")
->middleware('bindings');

绑定存在于 kernel.php 中:

'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,


查看完整回答
反对 回复 2022-01-14
?
三国纷争

TA贡献1804条经验 获得超7个赞

首先检查 Product 模型是否包含在顶部,例如

use App\Product;

还要确保产品 id 23 在您的数据库中可用。

检查您的日志文件,看看它是否产生任何错误。

还有一件事我注意到你创建了一个 apiResource 如果它的 api 路由添加 /api/ 到端点。

通过 php artisan route:list 检查所有端点


查看完整回答
反对 回复 2022-01-14
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

当您编写路线时会发生这种情况,不幸的是您添加了一个空格。

Route::get('/products/{product } ', "ProductController");

但是在这里您使用 apiResource 并且没有显示空间。请仔细检查所有路线,

php artisan route::list

是否存在任何其他单个product.show name 路由。当你在那之后得到这个

public function show($id)    
{
       $variable=Product::find($id);
    }


查看完整回答
反对 回复 2022-01-14
  • 3 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信