Laravel 8 API:获取 id 返回空 json

Posted

技术标签:

【中文标题】Laravel 8 API:获取 id 返回空 json【英文标题】:Laravel 8 API : Get with id return empty json 【发布时间】:2021-09-10 06:56:39 【问题描述】:

我有一个非常大的问题,我尝试使用 Laravel 8 创建一个 API,但是当我使用 Get 方法来获取我的所有事实时,它可以工作并且我得到了所有事实,但是当使用 id 时,我总是有空的 json ...

     * Display the specified resource.
     *
     * @param Facts $facts
     * @return Facts
     */
    public function show(Facts $facts)
    
        dd($facts);
        return $facts;
    

我得到的是这个而不是我的数据

App\Models\Facts #1195
  #fillable: array:6 [
    0 => "type"
    1 => "deleted"
    2 => "text"
    3 => "used"
    4 => "verified"
    5 => "count"
  ]
  #connection: null
  #table: null
  #primaryKey: "id"
  #keyType: "int"
  +incrementing: true
  #with: []
  #withCount: []
  +preventsLazyLoading: false
  #perPage: 15
  +exists: false
  +wasRecentlyCreated: false
  #attributes: []
  #original: []
  #changes: []
  #casts: []
  #classCastCache: []
  #dates: []
  #dateFormat: null
  #appends: []
  #dispatchesEvents: []
  #observables: []
  #relations: []
  #touches: []
  +timestamps: true
  #hidden: []
  #visible: []
  #guarded: array:1 [
    0 => "*"
  ]

这是控制器上的路径。

Route::apiResource('facts', FactsController::class);

对不起,我的英语不是很完美,但如果你能帮助我,请...谢谢大家

【问题讨论】:

【参考方案1】:

改成

public function show(Facts $fact)


   return $fact;

验证运行

php artisan route:list

即使您的 api 资源名称是复数 facts,参数仍然是单数。

例如

api/facts/fact   | facts.show

【讨论】:

这正是我在我的路线中所拥有的......我会努力改变事实 @VincentB.你还有问题吗? 非常感谢,它有效!只是为了事实的“s”,顺便说一句 laravel 单独写它...... xD 谢谢大家!

以上是关于Laravel 8 API:获取 id 返回空 json的主要内容,如果未能解决你的问题,请参考以下文章

Laravel api在邮递员中返回值,但在Vue js中返回空数组

Laravel 与 uuid 的多对多关系返回总是空的

在Laravel中使用WHERE返回空数组

Laravel hasMany 到复合表返回空数组

向 Laravel Api 发出 POST 请求时,React Native 获取一个空数组

Laravel Eloquent hasOne 返回空