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

如何获取第一个具有 morphToMany 关系的对象?

如何获取第一个具有 morphToMany 关系的对象?

PHP
慕的地8271018 2023-07-08 20:22:11
我的项目表上有多态关系public function categories(): MorphToMany{    return $this->morphToMany(Category::class, 'categorizable', 'categorizables', 'categorizable_id', 'category_id')        ->withTimestamps();}有用。我按预期得到了对象列表。只是,我的数据库中的某些模型始终只有一个类别。我想避免获得项目列表。我想要直接的对象。我尝试过,但它不起作用:public function category(){    return $this->morphToMany(Category::class, 'categorizable', 'categorizables', 'categorizable_id', 'category_id')->first;}Call to undefined method App\Models\Category::addEagerConstraints()我有这样的结果:{  'id': 1,  'name': 'My name',  'categories': [    {my object category}   ]}我想 :{  'id': 1,  'name': 'My name',  'category':     {my object category}}我怎样才能做到这一点?这是一种多对多的多态关系。
查看完整描述

1 回答

?
拉丁的传说

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

morphToMany 类似于 HasMany(),它总是返回一个数组。


您可以使用 EloquentAccessor来获取类别并操作数据。


protected $appends = ['category_data'];


public function getCategoryDataAttribute()

{       

    return $this->categories->first();


查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 84 浏览

添加回答

举报

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