php 查看 实例 的方法,php – 从Laravel 5.1中的通用数据库查询中获取Eloquent模型的实例...
我有不同關(guān)系的模型.假設(shè)我的Entry模型屬于供應(yīng)商,所以通常我的模型文件中有一個supplier()方法.
到目前為止一切都那么好,當(dāng)我有一些像Entry :: find(1) – >供應(yīng)商這樣的產(chǎn)品時,效果非常好.然而,什么是無效的是當(dāng)我從Laravel中的通用DB ::查詢中獲取條目時,我顯然無法訪問supplier()方法,因?yàn)樗皇荅ntry的實(shí)例.
$entries = DB::table('suppliers')
->join('entries', "supplier.id", '=', "entries.supplier_id")
->select('entries.*')
->where("supplier.name", 'like', "%{$name}%")
->get();
現(xiàn)在,如果我dd($entries);
我得到了預(yù)期的結(jié)果.但當(dāng)我做類似的事情時:
dd($entries[0]->supplier); // or ->supplier()
我收到此錯誤:
Undefined property: stdClass::$supplier.
那么如何將(?)這些結(jié)果轉(zhuǎn)換為Entry Eloquent模型,以便我可以利用這些關(guān)系?
這是$條目的原則:
Array
(
[0] => stdClass Object
(
[id] => 1
[user_id] => 0
[archived] => 0
[supplier_id] => 5
[customer_id] => 1
[contact] => dfgfdg
[commission] => dfgdfg
[entrance_date] => 2015-09-22 16:52:33
[cost_estimate] => 1
[status] => 1
[type] => 1
[watch_id] => 7
[reference] => dfgdfg
[serial_number] => 0
[delivery_date] => 2015-09-07 16:52:33
[articles_json] =>
[total_sales_cost_netto] =>
[gross_profit_netto] =>
[gross_profit_brutto] =>
[created_at] => 2015-09-09 20:10:02
[updated_at] => 2015-09-11 16:52:33
)
)
最佳答案 如@Zakaria所述,只需使用Eloquent:
$entries = Entry::with('supplier')
->join('supplier', "supplier.id", '=', "entries.supplier_id")
->where("supplier.name", 'like', "%{$name}%")
->get();
如果你真的需要“施放”他們,嘗試這樣的事情:
$entries = $yourDbQuery;
$c = new \Illuminate\Database\Eloquent\Collection;
foreach ($entries as $entry) {
$entryModel = new \App\Entry;
$c->add($entryModel->forceFill((array)$entry));
}
$c->load('supplier');
總結(jié)
以上是生活随笔為你收集整理的php 查看 实例 的方法,php – 从Laravel 5.1中的通用数据库查询中获取Eloquent模型的实例...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 摩尔庄园小丑鱼怎么获得
- 下一篇: dnf山东5来个54的角色一起组队,刷图