我如何使用雄辩模型获取多个表列名称

时间:2019-09-03 06:00:33

标签: php laravel eloquent

使用雄辩的模型获取多个表列名称时遇到问题

示例:我有两个表1)用户2)帖子

1)User Iam能够获取用户的所有列名称

class User extends Eloquent {

    public function getTableColumns() {
        return $this->getConnection()->getSchemaBuilder()->getColumnListing($this->getTable());
    }

}

但是我想要结合两个模型,即User和post modal,并使用雄辩的modal获得所有列名

1 个答案:

答案 0 :(得分:0)

首先创建用户和发布方式关系

User.php 模态类

public function post() {
   return $this->hasMany(Post::class);
}

public function getTableColumns() {
       return array_merge(
            $this->getConnection()->getSchemaBuilder()->getColumnListing($this->getTable()), //user modal column
            $this->post()->getTableColumns()   //post modal column
       );
}

Post.php 模态类的第二个

public function scopeGetTableColumns() {
        return $this->getConnection()->getSchemaBuilder()->getColumnListing($this->getTable());
 }

第三次打开您的终端并运行:

 php artisan tinker 


(new \App\User)->getTableColumns(); 
  

您将使用关系获取两个表列。

User.php 类函数中的其他明智的Just Pass表名称也是如此

public function getTableColumns($tableName = 'posts') {
       return array_merge(
            $this->getConnection()->getSchemaBuilder()->getColumnListing($this->getTable()), //user modal column
            $this->getConnection()->getSchemaBuilder()->getColumnListing($tableName)   //post modal column
       );
}