Не удается получить доступ к атрибутам в модели Laravel - PullRequest
0 голосов
/ 04 октября 2018

В настоящее время я сделал модель по умолчанию для базы данных user_domains

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Domains extends Model
{
    public $incrementing = true;
    protected $table = 'user_domains';
    protected $primaryKey = 'id';

}

Пока все хорошо.

Но, когда я использую Query Builder, чтобы получить от него некоторые данные, он не позволит мне получить к нему доступ через атрибуты, такие как $ domains-> domain

Я сделали эта функция использует метод all, чтобы просто получить все данные, без каких-либо сложных операторов where.Но на выходе это огромная коллекция со всеми деталями базы данных

object(Illuminate\Database\Eloquent\Collection)#274 (1) {
  ["items":protected]=>
  array(3) {
    [0]=>
    object(App\Domains)#275 (26) {
      ["incrementing"]=>
      bool(true)
      ["table":protected]=>
      string(12) "user_domains"
      ["primaryKey":protected]=>
      string(2) "id"
      ["connection":protected]=>
      string(5) "mysql"
      ["keyType":protected]=>
      string(3) "int"
      ["with":protected]=>
      array(0) {
      }
      ["withCount":protected]=>
      array(0) {
      }
      ["perPage":protected]=>
      int(15)
      ["exists"]=>
      bool(true)
      ["wasRecentlyCreated"]=>
      bool(false)
      ["attributes":protected]=>
      array(6) {
        ["id"]=>
        int(1)
        ["domain"]=>
        string(10) "example.nl"
        ["user_id"]=>
        int(1)
        ["verified"]=>
        int(1)
        ["created_at"]=>
        NULL
        ["updated_at"]=>
        NULL
      }
      ["original":protected]=>
      array(6) {
        ["id"]=>
        int(1)
        ["domain"]=>
        string(10) "example.nl"
        ["user_id"]=>
        int(1)
        ["verified"]=>
        int(1)
        ["created_at"]=>
        NULL
        ["updated_at"]=>
        NULL
      }
      ["changes":protected]=>
      array(0) {
      }
      ["casts":protected]=>
      array(0) {
      }
      ["dates":protected]=>
      array(0) {
      }
      ["dateFormat":protected]=>
      NULL
      ["appends":protected]=>
      array(0) {
      }
      ["dispatchesEvents":protected]=>
      array(0) {
      }
      ["observables":protected]=>
      array(0) {
      }
      ["relations":protected]=>
      array(0) {
      }
      ["touches":protected]=>
      array(0) {
      }
      ["timestamps"]=>
      bool(true)
      ["hidden":protected]=>
      array(0) {
      }
      ["visible":protected]=>
      array(0) {
      }
      ["fillable":protected]=>
      array(0) {
      }
      ["guarded":protected]=>
      array(1) {
        [0]=>
        string(1) "*"
      }
    }
    [1]=>
    object(App\Domains)#276 (26) {
      ["incrementing"]=>
      bool(true)
      ["table":protected]=>
      string(12) "user_domains"
      ["primaryKey":protected]=>
      string(2) "id"
      ["connection":protected]=>
      string(5) "mysql"
      ["keyType":protected]=>
      string(3) "int"
      ["with":protected]=>
      array(0) {
      }
      ["withCount":protected]=>
      array(0) {
      }
      ["perPage":protected]=>
      int(15)
      ["exists"]=>
      bool(true)
      ["wasRecentlyCreated"]=>
      bool(false)
      ["attributes":protected]=>
      array(6) {
        ["id"]=>
        int(2)
        ["domain"]=>
        string(11) "example.com"
        ["user_id"]=>
        int(1)
        ["verified"]=>
        int(1)
        ["created_at"]=>
        NULL
        ["updated_at"]=>
        NULL
      }
      ["original":protected]=>
      array(6) {
        ["id"]=>
        int(2)
        ["domain"]=>
        string(11) "example.com"
        ["user_id"]=>
        int(1)
        ["verified"]=>
        int(1)
        ["created_at"]=>
        NULL
        ["updated_at"]=>
        NULL
      }
      ["changes":protected]=>
      array(0) {
      }
      ["casts":protected]=>
      array(0) {
      }
      ["dates":protected]=>
      array(0) {
      }
      ["dateFormat":protected]=>
      NULL
      ["appends":protected]=>
      array(0) {
      }
      ["dispatchesEvents":protected]=>
      array(0) {
      }
      ["observables":protected]=>
      array(0) {
      }
      ["relations":protected]=>
      array(0) {
      }
      ["touches":protected]=>
      array(0) {
      }
      ["timestamps"]=>
      bool(true)
      ["hidden":protected]=>
      array(0) {
      }
      ["visible":protected]=>
      array(0) {
      }
      ["fillable":protected]=>
      array(0) {
      }
      ["guarded":protected]=>
      array(1) {
        [0]=>
        string(1) "*"
      }
    }
    [2]=>
    object(App\Domains)#277 (26) {
      ["incrementing"]=>
      bool(true)
      ["table":protected]=>
      string(12) "user_domains"
      ["primaryKey":protected]=>
      string(2) "id"
      ["connection":protected]=>
      string(5) "mysql"
      ["keyType":protected]=>
      string(3) "int"
      ["with":protected]=>
      array(0) {
      }
      ["withCount":protected]=>
      array(0) {
      }
      ["perPage":protected]=>
      int(15)
      ["exists"]=>
      bool(true)
      ["wasRecentlyCreated"]=>
      bool(false)
      ["attributes":protected]=>
      array(6) {
        ["id"]=>
        int(3)
        ["domain"]=>
        string(11) "example.org"
        ["user_id"]=>
        int(1)
        ["verified"]=>
        int(1)
        ["created_at"]=>
        NULL
        ["updated_at"]=>
        NULL
      }
      ["original":protected]=>
      array(6) {
        ["id"]=>
        int(3)
        ["domain"]=>
        string(11) "example.org"
        ["user_id"]=>
        int(1)
        ["verified"]=>
        int(1)
        ["created_at"]=>
        NULL
        ["updated_at"]=>
        NULL
      }
      ["changes":protected]=>
      array(0) {
      }
      ["casts":protected]=>
      array(0) {
      }
      ["dates":protected]=>
      array(0) {
      }
      ["dateFormat":protected]=>
      NULL
      ["appends":protected]=>
      array(0) {
      }
      ["dispatchesEvents":protected]=>
      array(0) {
      }
      ["observables":protected]=>
      array(0) {
      }
      ["relations":protected]=>
      array(0) {
      }
      ["touches":protected]=>
      array(0) {
      }
      ["timestamps"]=>
      bool(true)
      ["hidden":protected]=>
      array(0) {
      }
      ["visible":protected]=>
      array(0) {
      }
      ["fillable":protected]=>
      array(0) {
      }
      ["guarded":protected]=>
      array(1) {
        [0]=>
        string(1) "*"
      }
    }
  }
}

Как я могу просто получить доступ к данным из таблицы вместо всего этого мусора?

1 Ответ

0 голосов
/ 04 октября 2018

$domains является Collection из Domains.не один Domain.
Вы пытаетесь получить доступ к attribute объекта Domain из этого Collection.

, поскольку вы не опубликовали то, что пытаетесь сделать ввопрос, я не могу предоставить решение.

Но я поделюсь некоторыми знаниями.

получите один элемент из коллекции, и затем вы сможете получить доступ к атрибутам этого объекта.

// name of the first domain (string)
$name = $domains->get(0)->name;

получить все имена в другой коллекции

// names of all the domains (another collection)
$names = $domains->map->name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...