Как получить текущие атрибуты модели Eloquent? - PullRequest
1 голос
/ 16 июня 2019

Я хотел бы получить ключи модели, а не столбцы в базе данных.

Вот пример того, чего я хотел бы достичь:

>>> $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 ]

1 голос
/ 16 июня 2019

У Laravel есть метод вне метода, чтобы сделать это

этот метод Wsa введен в 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());
1 голос
/ 16 июня 2019

Чтобы получить атрибуты без его значений

  1. Для экземпляра модели:

    array_keys($model->getAttributes())

  2. Для названия таблицы модели:

    Schema::getColumnListing('tasks');

1 голос
/ 16 июня 2019

<?php

Hi nowox,

//in your Model create a method getKeysAtribute like
...
public function getKeysAttribute() {
    return array_keys($this->attributes);
}
...

 $model->keys() // ['key1', 'key2', ...];
1 голос
/ 16 июня 2019

Используйте array_keys($model->toArray()), чтобы найти массивы. Он покажет вам массивы ключей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...