1
我必须努力执行的hasMany方法时,这个恼人的问题:Laravel雄辩误差“的hasMany”的关系
我有一个任务模式,其中我想检索所有的状态
class Task extends Eloquent {
protected $guarded = array();
public static $rules = array();
public function states(){
return $this->hasMany('TaskState','task_id');
}
...从这个TaskState模式(DB具有列:TASK_ID,USER_ID,状态)
class TaskState extends Eloquent {
public $table= "taskstates";
protected $guarded = array();
public static $rules = array();
public function task(){
return $this->belongsToMany('Task','task_id');
}
然而,当我尝试执行此,
$task = Task::find($id);
return $task->states;
它不断给这个错误:
Call to undefined method TaskState::newQuery()
我卡在这个像两天。有人会知道这里可能会出现什么问题吗? 在此先感谢!
这看起来可能是一个命名空间问题 - 如果TaskState类确实扩展了Eloquent,那么它应该有一个newQuery()方法。但是,您是否尝试过手动调用该方法? – alexrussell
'hasMany()'函数的反函数是'belongsTo()'。所以你的'task()'函数试着返回'return $ this-> belongsTo('Task','task_id')';. 'belongsToMany()'通常用于数据透视表。 – user3158900
我已将它更改为belongsTo(),但仍然存在相同的错误:无论如何要感谢! – vrijdrogenaam