Laravel 控制器返回模型实例而不是数据内容

Posted

技术标签:

【中文标题】Laravel 控制器返回模型实例而不是数据内容【英文标题】:Laravel controller return model instance instead data content 【发布时间】:2022-01-15 15:47:47 【问题描述】:

我有这条路线:

Route::group(['prefix' => 'comments', 'middleware' => ['auth:api']], function()
    Route::delete('/delete/id', [CommentController::class, 'destroy'])->name('comment.delete');
);

在我的控制器中

public function destroy(Comments $comments)
    
        dd($comments);
    

通常我必须拥有各自id的数据,对吗?但是我得到了模型的空实例

【问题讨论】:

【参考方案1】:

要工作,您需要将路由参数从id 更改为comments

Laravel 自动解析路由中定义的 Eloquent 模型或 类型提示变量名称与路由匹配的控制器操作 段名。

Route::delete('/delete/comments', [CommentController::class, 'destroy'])->name('comment.delete');

在这里阅读:https://laravel.com/docs/8.x/routing#implicit-binding。

【讨论】:

以上是关于Laravel 控制器返回模型实例而不是数据内容的主要内容,如果未能解决你的问题,请参考以下文章

Laravel POST 调用返回 index() 函数而不是 store()

如何返回格式化(漂亮)JSON 而不是 JSON?还是换行 JSON 而不是内联 JSON?(Laravel)

Laravel 模型 - 如果数据库表不存在则返回 null

Laravel 控制器返回索引视图而不是 json 响应

Laravel belongsTo 只返回 id 而不是整个对象

带有 keyBy 的 Laravel 响应返回对象而不是数组