我试图以典型的belongsTo
关系工作。然而,它一直说该列未在模型中设置,即使在实际的数据库中查找它也在那里。
我试图查看源代码以及尝试许多方法来绕过这个问题,但似乎什么也没做。
public function modifiedBy()
{
return $this->belongsTo('\Modules\Users\Model\User', 'modified_by');
}
public function createdBy()
{
return $this->belongsTo('\Modules\Users\Model\User', 'created_by');
}
这是模型中的代码,我使用PSR-0来定义模块,更好地拆分逻辑(没有问题)但是使用它会产生错误
Undefined property: \Modules\Module\Model\CurrentModel::$modified_by
这是来自种子,将一些初始信息推送到数据库中。
$user = Sentinel::findById(1);
$model = new CurrentModel;
$model->modifiedBy()->associate($user);
$model->save();
这基本上是它如何结合在一起,我已经尝试了一段时间来弄清楚出了什么问题,但我正在调用空白。有什么想法吗?
答案 0 :(得分:0)
找到解决方案。虽然不是一个修复,但我认为这是laravel的一个问题所以我可能会考虑将其添加为错误报告(虽然这可以在laravel 5中修复?)。
基本上使用modified_by我需要定义它正在使用的列,而不是让laravel自动生成它(为了“干净地”这样做)。然而,“bug”(仅称之为bug,因为目前我只能将其视为一个意外的问题)使得它无法定义它将使用的列,你必须让laravel为你决定。
所以我把功能改成了这样:
public function modifiedby()
{
return $this->belongsTo('\Modules\Users\Model\User');
}
这使得laravel假设该列为modifiedby_id
,但通过更改我的迁移以反映没有更多错误。