В настоящее время я использую Xero API внутри Laravel 5.2. Я хотел бы использовать силу 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
и, кажется, прав.
Спасибо!
Вы можете взять один элемент коллекции, используя first()
метод.
$entity = $collection->first();
Вы можете найти больше информации здесь о том, какие методы у вас есть в наличии Illuminate\Support\Collection
,
Других решений пока нет …