Код Laravel для очистки нежелательных свойств объекта и извлечения только необходимых атрибутов в laravel 5.4? - PullRequest
0 голосов
/ 19 сентября 2018

В Laravel 5.4 у меня есть база данных sqlite и с кодом ниже.То, что я пытаюсь вернуть из приведенного ниже кода, это только значения столбцов таблицы Article (id, title, description) и ничего более.Когда я использую Var_dump (), он возвращает ненужные свойства объектов.

public function home()
    {
        $articles=Article::get();
        return view('home',['items'=>$articles]); // any name can be given 
    }
{{var_dump($items)}}

, как указано ниже.

`object(Illuminate\Database\Eloquent\Collection)#189 (1) {
  ["items":protected]=>
  array(5) {
    [0]=>
    object(App\Article)#190 (25) {
      ["connection":protected]=>
      string(6) "sqlite"
      ["table":protected]=>
      NULL
      ["primaryKey":protected]=>
      string(2) "id"
      ["keyType":protected]=>
      string(3) "int"
      ["incrementing"]=>
      bool(true)
      ["with":protected]=>
      array(0) {
      }
      ["withCount":protected]=>
      array(0) {
      }
      ["perPage":protected]=>
      int(15)
      ["exists"]=>
      bool(true)
      ["wasRecentlyCreated"]=>
      bool(false)
      ["attributes":protected]=>
      array(5) {
        ["id"]=>
        string(1) "1"
        ["title"]=>
        string(7) "Laravel"
        ["description"]=>
        string(34) "Laravel is Powerful Php Framework."
        ["created_at"]=>
        string(19) "2018-09-10 17:04:38"
        ["updated_at"]=>
        string(19) "2018-09-10 17:04:38"
      }
      ["original":protected]=>
      array(5) {
        ["id"]=>
        string(1) "1"
        ["title"]=>
        string(7) "Laravel"
        ["description"]=>
        string(34) "Laravel is Powerful Php Framework."
        ["created_at"]=>
        string(19) "2018-09-10 17:04:38"
        ["updated_at"]=>
        string(19) "2018-09-10 17:04:38"
      }

}`

Мне нужен код, который возвращает свойства объекта с точными атрибутами, как показано ниже.

["attributes":protected]=>
  array(5) {
    ["id"]=>
    string(1) "1"
    ["title"]=>
    string(7) "Laravel"
    ["description"]=>
    string(34) "Laravel is Powerful Php Framework."
    ["created_at"]=>
    string(19) "2018-09-10 17:04:38"
    ["updated_at"]=>
    string(19) "2018-09-10 17:04:38"
  }

Любойхорошее решение для этого?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

это правильно

public function home()
{
    $articles=Article::get();
    return view('home',['items'=>$articles]); // any name can be given 
}

и на ваш взгляд, чтобы увидеть вывод

{{ dd($items) }}

также не беспокойтесь о дополнительных параметрах с var_dump, доступ только к нужным сейчас

0 голосов
/ 19 сентября 2018

В верхней части модели Article добавьте определенные столбцы таблицы, которые вы хотите отфильтровать, в этот массив $hidden

protected $hidden = [
    'user_password', 'remember_token',
];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...