Laravel7模型有没有一种获取所有列列表的方法?

Laravel7模型有没有一种获取所有列列表的方法?,laravel,Laravel,Laravel7模型有没有一种获取所有列列表的方法 我找到并尝试了这个方法 with(new ModelName)->columns 但它返回空字符串。 我不是指模型的$fillable var 谢谢 如果您只想找到一种可靠的方法从任何给定实例中提取属性列表,而不管其状态如何,并且假设表结构不经常更改,那么阻力最小的方法可能是设置默认属性数组,以确保属性始终存在 e、 g $fishie=app(\Fish::class) 然后将生成一个具有uuid、fin_计数和first_

Laravel7模型有没有一种获取所有列列表的方法

我找到并尝试了这个方法

  with(new ModelName)->columns
但它返回空字符串。 我不是指模型的$fillable var


谢谢

如果您只想找到一种可靠的方法从任何给定实例中提取属性列表,而不管其状态如何,并且假设表结构不经常更改,那么阻力最小的方法可能是设置默认属性数组,以确保属性始终存在

e、 g

  • $fishie=app(\Fish::class)

然后将生成一个具有uuid、fin_计数和first_名称集的Fish实例。然后可以使用
$fishie->attributes
$fishie->getAttributes()
加载整个集合

假设结构没有太大变化,在模型上这样设置属性将在每次需要引用列表时为您保存一个数据库查询。另一方面,实例从没有明确定义的属性变为始终存在,这可能会对项目产生影响

以下是默认属性的文档:


类似于<代码>$product=新产品
$columns=$product->getTableColumns()是否仅对已加载的模型有效?我试图在一个作用域中使用它:公共函数scopeExcludeFields($query,$value=array()){return$query->select(array_diff(with(new Task)->getTableColumns(),(array)$value));>getTableColumns();}。但是调用了未定义的方法error,这会有所帮助
class Fish extends Model
{
     protected $attributes = [
        'uuid' => null,
        'fin_count' => null,
        'first_name' => null,
    ];
}