我想获取模型的密钥,而不是数据库中的列。
以下是我要实现的目标的一个示例:
>>> $model = Model::first();
=> [
"foo" => 3,
"bar" => 4
]
>>> $model->baz = 5;
>>> $model->keys() // What I would like to do...
=> ["foo", "bar", "baz"]
很遗憾,get_object_vars
在这里不起作用。
答案 0 :(得分:1)
使用array_keys($model->toArray())
查找数组。它将显示键数组。
答案 1 :(得分:1)
要获取没有其值的属性
对于模型实例:
array_keys($model->getAttributes())
对于模型的表名:
Schema::getColumnListing('tasks');
答案 2 :(得分:1)
<?php
Hi nowox,
//in your Model create a method getKeysAtribute like
...
public function getKeysAttribute() {
return array_keys($this->attributes);
}
...
$model->keys() // ['key1', 'key2', ...];
答案 3 :(得分:1)
Laravel可以通过方法来做到这一点
此方法在laravel 5.4
中引入,因此只有5.4或更高版本的应用程序才有效
//gets the first model from the table
$model = Model::first();
//to get the original data With value
$originalAndData = $model->getOriginal();
//to get only the filed names
$originalKey = array_keys($model->getOriginal());