如何获得口才模型的当前属性?

时间:2019-06-16 09:59:06

标签: laravel eloquent

我想获取模型的密钥,而不是数据库中的列。

以下是我要实现的目标的一个示例:

>>> $model = Model::first();
=> [
     "foo" => 3,
     "bar" => 4
   ]
>>> $model->baz = 5;
>>> $model->keys() // What I would like to do...
=> ["foo", "bar", "baz"]

很遗憾,get_object_vars在这里不起作用。

4 个答案:

答案 0 :(得分:1)

使用array_keys($model->toArray())查找数组。它将显示键数组。

答案 1 :(得分:1)

要获取没有其值的属性

  1. 对于模型实例:

    array_keys($model->getAttributes())

  2. 对于模型的表名:

    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());