与我的关系HasMany/BelongsTo的错误



>我有一个模型 处理这种关系

public function types()
{
    return $this->belongsTo('AppModelsType');
}

以及具有此关系的模型类型

public function works()
{
    return $this->hasMany('AppModelsWork');
}

我尝试在我的视图中访问显示视图以键入,但我有很多错误

Undefined property: IlluminateDatabaseEloquentRelationsBelongsTo::$name

我试试这个:$work->types()->name获取数据。

在我的数据库中,我的表"作品"有一个外键"type_id"。

我想获得帖子的"类型"。每个帖子只能有一个。

谢谢!

从语义上讲,你想让你的关系像这样:

工作

// A work is of a single type
public function type()
{
    return $this->belongsTo('AppModelsType');
}

类型

// A type of work can have many items of work
public function works()
{
    return $this->hasMany('AppModelsWork');
}

然后,您可以像这样访问关系:

$type = Work::first()->type // return object of type Type
$works = Type::first()->works // return collection of objects of type Work

编辑

通过访问与()的关系,您将返回关系的基础查询生成器实例,您需要使用如下所示->get()完成语句:

$works = Type::first()->works()->get();

你应该有工作模型:

public function type()
{
    return $this->belongsTo('AppModelsType');
}

在您看来:

$work->type->name;

由于您没有使用默认 id 作为外键,因此您应该添加

protected $primaryKey = "type_id";

在您的模型中

最新更新