我目前正在将Laravel 4.2项目升级到5.0我一直在取得合理的进展,直到这个特定的错误:
Model.php第750行中的FatalErrorException:未找到“SAPProduct”类。
我的Product类中使用hasOne关系调用我的SapProduct类,我无法理解Laravel无法找到它的原因。
SapProduct.php
namespace App\Models;
use Eloquent;
class SapProduct extends Eloquent
{
public function brand()
{
return $this->belongsTo('App\Models\Brand', 'U_Brand', 'Name');
}
}
Product.php
namespace App\Models;
use Eloquent;
class Product extends Eloquent
{
...
public function sapProduct()
{
$relationship = $this->hasOne('App\Models\SapProduct', 'ItemCode', 'itemcode');
}
...
}
Model.php(第746-755行)
public function hasOne($related, $foreignKey = null, $localKey = null)
{
$foreignKey = $foreignKey ?: $this->getForeignKey();
$instance = new $related;
$localKey = $localKey ?: $this->getKeyName();
return new HasOne($instance->newQuery(), $this, $instance->getTable().'.'.$foreignKey, $localKey);
}
如果我遗漏任何其他必要信息,我会道歉,如果需要,我会添加更多信息。
由于
答案 0 :(得分:1)
在这个问题上花了太多时间后,我将其追踪到违规行。
这种关系已经通过另一种与之没有关系的模式进行了联系。' SapProduct'正确命名空间。
违规模型是ProductVariation.php并且具有以下不正确的行:
$relationship = $this->hasOne('SAPProduct', 'ItemCode', 'itemcode');
需要的时候:
$relationship = $this->hasOne('App\Models\SAPProduct', 'ItemCode', 'itemcode');
这也是为什么laravel将SapProduct错误带回首都而不是驼峰的原因。
感谢所有试图提供帮助的人!