我想在laravel中获得具有Eloquent关系的列列表。当我使用这个通信时
$columns = Schema::getColumnListing('news');
结果是新闻表的所有字段,但我想获得CategoryNews表的关系字段。
新闻模型:
public function NewsCategories()
{
return $this->belongsTo('App'CategoryNews');
}
类别新闻模型:
public function News()
{
return $this->hasMany('App'News');
}
您应该能够执行以下操作:
$columns = Schema::getColumnListing($news->NewsCategories()->getRelated()->getTable()));
使用getRelated()
方法可以获得关系的相关对象(在您的情况下是App'CategoryNews
),现在使用方法getTable()
可以获得该模型的表名,并且可以将该表名用于getColumnListing()
方法。