我在一個wordpress插件裏面使用了Laravel的Eloquent。在Laravel外面使用口才 - 渴望/懶惰Loading相關型號
產品型號:
<?php namespace GD;
use Country;
class Product extends \Illuminate\Database\Eloquent\Model
{
public function country()
{
return $this->belongsTo('Country', 'CountryId');
}
}
國家型號:
$products = $this->product->where('MetalId', '=', 1)
->where('ProductTypeId', '=', '2')
->orderBy('Name')->orderBy('CountryId')
->get();
但是我不能急於/延遲加載:
<?php namespace GD;
use Product;
class Country extends \Illuminate\Database\Eloquent\Model
{
public function products()
{
return $this->hasMany('Product');
}
}
我可以使用標準Laravel語法查詢任何模型相關型號:
$products = $this->product->with('country')->where('MetalId', '=', 1)
->where('ProductTypeId', '=', '2')
->orderBy('Name')->orderBy('CountryId')
->get();
錯誤消息
Fatal error: Class 'Country' not found in .../vendor/illuminate/database/Illuminate/Database/Eloquent/Model.php on line 593
所以我想這一定是一個命名空間的問題,所以我更新我的模型代碼:
return $this->belongsTo('\\GD\\Country', 'CountryId');
and
return $this->hasMany('\\GD\\Product');
然而,當我運行的產品型號查詢,並vardump的結果,我得到:
["relations":protected]=>
array(1) {
["country"]=>
NULL
}
你配置了類自動加載器嗎?如果另一個插件包含Eloquent文件,那麼你是如何處理這種情況的 - 特別是如果它是一個不同版本的Eloquent? –