>我有一个模型 处理这种关系
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";
在您的模型中