首页 > 解决方案 > 如何获取 Laravel belongsTo 关系的所有记录(相关和非相关)?

问题描述

如何从关系中获取所有记录?我指的不仅是相关记录,还有其他记录。

假设我有一个属于某个类别的帖子。如果我想更改这篇文章的类别,我需要一个所有可用类别的列表。我可以从关系中得到这个列表吗?

邮政模型

class Post extends Model
{
    public function category()
    {
        return $this->belongsTo('App\Category');
    }
}

类别模型:

namespace App;

use Illuminate\Database\Eloquent\Model;

class Category extends Model
{
    public function posts()
    {
        return $this->hasMany('App\Post');
    }
}

PostsController我试过:

$postModel->category->find('all'); // Returns null
$postModel->category->all(); // Returns only the related categories

我知道我可以简单地使用 PostsController 中的 Category 模型,但我更喜欢使用关系。

标签: laraveleloquentrelationshipbelongs-to

解决方案


如果你觉得你必须使用这种关系来获得另一个模型,你可以尝试:

$categories = $post->category()->getRelated()->get();

推荐阅读