2016-06-23 5 views
0

В настоящее время я использую API Xero внутри Laravel 5.2. Я бы хотел использовать силу Eloquent с этими данными.Преобразование коллекции в объект Eloquent

На самом деле я могу восстановить счета и даже фильтровать их с использованием методов построения цепочки, как показано ниже:

$invoices = XeroPrivate::load('Accounting\\Invoice') 
     ->where('Status', 'DRAFT') 
     ->execute(); 

Если я делаю var_dump, я получаю данные такого рода:

object(XeroPHP\Remote\Collection)[173] 
    public 0 => 
    object(XeroPHP\Models\Accounting\Invoice)[171] 
     protected '_data' => 
     array (size=31) 
      'Type' => string 'ACCPAY' (length=6) 
      'Contact' => 

Красноречивых метод цепной бы позвольте мне выполнить такие вещи. В настоящее время он не:

$invoices = XeroPrivate::load('Accounting\\Invoice') 
     ->where('Date','>','2016-03-20') 
     ->execute(); 

Проверка документации Laravel, это, как предполагается, я мог бы преобразовать в коллекцию с collect:

$collection = collect($invoices); 

$collection не решает проблему. Теперь структура данных отличается, но все еще не может использовать Eloquent. Теперь данные:

object(Illuminate\Support\Collection)[163] 
    protected 'items' => 
    array (size=24) 
     0 => 
     object(XeroPHP\Models\Accounting\Invoice)[171] 
      protected '_data' => 
      array (size=31) 

Но это показано данных является Illuminate\Support\Collection и кажется правильным.

Спасибо!

ответ

1

Вы можете взять один элемент коллекции с помощью метода first().

$entity = $collection->first(); 

You can find more information here о том, что методы, которые вы имеете в наличии в Illuminate\Support\Collection.

+0

Спасибо! но все еще не работает ... делает: '$ collection = collect ($ invoices); var_dump ($ collection-> first() -> где ('Status', 'DRAFT')); 'выдает ошибку:' Вызов неопределенного метода XeroPHP \ Models \ Accounting \ Invoice :: where() ' – Joss

+1

Почему вы используете 'where()' на Entity? «Модель» не является построителем запросов. Вам нужно использовать 'first() -> query() -> where() -> get()', если вы хотите использовать модель в качестве построителя запросов. – GiamPy