gpt4 book ai didi

php - 在 Laravel Eloquent 中检索所有 morphedByMany 关系

转载 作者:IT王子 更新时间:2023-10-29 00:06:12 24 4
gpt4 key购买 nike

在 Laravel 文档中,有以下示例用于检索 morphedByMany 关系,这些关系是多对多多态关系。

Laravel Many to Many polymorphic relations documentation

namespace App;

use Illuminate\Database\Eloquent\Model;

class Tag extends Model
{
/**
* Get all of the posts that are assigned this tag.
*/
public function posts()
{
return $this->morphedByMany('App\Post', 'taggable');
}

/**
* Get all of the videos that are assigned this tag.
*/
public function videos()
{
return $this->morphedByMany('App\Video', 'taggable');
}
}

我如何在一个查询/集合中获得所有morphed 关系的列表,例如,postsvideos,然后如果我后来添加了照片(或其他任何东西),那也是吗?

最佳答案

我在这里使用了一个技巧:

为您的连接表 taggable 创建一个模型 Taggable 并向 Tag 模型添加一个 hasMany 关系。

public function related()
{
return $this->hasMany(Taggable::class);
}

在您的 Taggable 模型中创建一个 morphedTo 关系。

public function taggables()
{
return $this->morphTo();
}

现在你可以通过调用获取所有使用标签的模型:

$tagged = Tag::with('related.taggables');

关于php - 在 Laravel Eloquent 中检索所有 morphedByMany 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35948130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com