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