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'); } } 但是,我无法快速/延迟加载

我正在wordpress插件中使用Laravel的雄辩

产品型号:

<?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');