php 如何使用Eloquent简化Laravel数据库中相关表的检索?

x0fgdtte  于 2023-05-21  发布在  PHP
关注(0)|答案(1)|浏览(137)

我只是想知道,是否有更简单的方法来获取数据库中相关表的数组。我想有一个比我做的更简单的方法。
我有两张table。

[标签]

  • ID
  • 姓名
  • 分类_ID
    [分类]
  • ID
  • 姓名

我想得到一个像这样的数组:
数组(
'类别1' => [
标签1
标签2
'标签3'
],
'类别2' => [
标签1
标签2
'.......'
]
);

wlzqhblo

wlzqhblo1#

使用Laravel的Eloquent,你可以使用模型关系来简化。我假设您已经为每个表定义了Eloquent模型。

use App\Models\Category;

$categories = Category::with('tags')->get();

$result = [];

foreach ($categories as $category) {
    $result[$category->name] = $category->tags->pluck('name')->toArray();
}

不要忘记在类别模型中定义关系

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Category extends Model
{
    public function tags()
    {
        return $this->hasMany(Tag::class);
    }
}

在Tag模型中

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Tag extends Model
{
    public function category()
    {
        return $this->belongsTo(Category::class);
    }
}

相关问题