В настоящее время я использую 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
и кажется правильным.
Спасибо!
Спасибо! но все еще не работает ... делает: '$ collection = collect ($ invoices); var_dump ($ collection-> first() -> где ('Status', 'DRAFT')); 'выдает ошибку:' Вызов неопределенного метода XeroPHP \ Models \ Accounting \ Invoice :: where() ' – Joss
Почему вы используете 'where()' на Entity? «Модель» не является построителем запросов. Вам нужно использовать 'first() -> query() -> where() -> get()', если вы хотите использовать модель в качестве построителя запросов. – GiamPy