使用雄辩的模型获取多个表列名称时遇到问题
示例:我有两个表1)用户2)帖子
1)User Iam能够获取用户的所有列名称
class User extends Eloquent {
public function getTableColumns() {
return $this->getConnection()->getSchemaBuilder()->getColumnListing($this->getTable());
}
}
但是我想要结合两个模型,即User和post modal,并使用雄辩的modal获得所有列名
答案 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
);
}