获取laravel中Eloquent关系的列列表


Get column list with Eloquent relation in laravel

我想在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()方法。