Wordpress 使用有说服力的外部Laravel-渴望/懒惰加载相关模型
我正在wordpress插件中使用Laravel的雄辩 产品型号:Wordpress 使用有说服力的外部Laravel-渴望/懒惰加载相关模型,wordpress,laravel,lazy-loading,eloquent,eager-loading,Wordpress,Laravel,Lazy Loading,Eloquent,Eager Loading,我正在wordpress插件中使用Laravel的雄辩 产品型号: <?php namespace GD; use Country; class Product extends \Illuminate\Database\Eloquent\Model { public function country() { return $this->belongsTo('Country', 'CountryId'); } } 但是,我无法快速/延迟加载
<?php namespace GD;
use Country;
class Product extends \Illuminate\Database\Eloquent\Model
{
public function country()
{
return $this->belongsTo('Country', 'CountryId');
}
}
但是,我无法快速/延迟加载相关模型:
$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
}
我最近也遇到了同样的问题,这确实是一个名称空间问题 尝试只向命名空间字符串添加单反斜杠,因为您使用单引号将它们括起来 像这样:
return $this->belongsTo('GD\Country', 'CountryId');
and
return $this->hasMany('GD\Product');
另外,请确保您使用的是完整的命名空间。在我的应用程序中,我使用了“app\Models\ModelName”
您的应用程序是否应该类似于“App\Models\GD\ModelName”?这取决于您的应用程序结构
让我知道这是否有效。我最近也遇到了同样的问题,这确实是一个名称空间问题 尝试只向命名空间字符串添加单反斜杠,因为您使用单引号将它们括起来 像这样:
return $this->belongsTo('GD\Country', 'CountryId');
and
return $this->hasMany('GD\Product');
另外,请确保您使用的是完整的命名空间。在我的应用程序中,我使用了“app\Models\ModelName”
您的应用程序是否应该类似于“App\Models\GD\ModelName”?这取决于您的应用程序结构
让我知道这是否有效。顺便说一句,我刚刚注意到模型定义中的名称空间声明。所以“GD\ModelName”是正确的。不过,请尝试单反斜杠建议。谢谢,但单“\`没有任何区别。请尝试加载一条记录。你能读懂那张唱片的国家吗?例如:产品::查找(产品id)->国家;嘿你能按照我在前面的评论中要求的做吗?顺便说一句,我刚刚注意到你的模型定义中的名称空间声明。所以“GD\ModelName”是正确的。不过,请尝试单反斜杠建议。谢谢,但单“\`没有任何区别。请尝试加载一条记录。你能读懂那张唱片的国家吗?例如:产品::查找(产品id)->国家;嘿您是否能够按照我在上一条评论中的要求进行操作?您是否配置了类自动加载程序?如果另一个插件也包含Eloquent文件,特别是如果它是Eloquent的不同版本,那么您如何处理这种情况?您是否配置了类自动加载程序?如果另一个插件也包含了Eloquent文件,尤其是如果它是Eloquent的不同版本,您如何处理这种情况?
return $this->belongsTo('GD\Country', 'CountryId');
and
return $this->hasMany('GD\Product');