我有一种我认为应该工作的关系,但事实并非如此。我有两个表,用户词和单词。每个用户单词都有一个与之关联的单词,但是当我查询它时,它使用了错误的列。在我的用户名表中,我有一个word_id列,我希望将其用作与word表中的id匹配的列。所以在用户词模型中,我将关系定义为:
public function word(){
return $this->hasOne('Word', 'id', 'word_id');
}
但问题是,不是使用userwords表中的word_id搜索单词表,而是使用userwords表中的id。关于我做错了什么的任何想法?我仍然不完全理解关系所以我打赌我做的事情很傻。无论如何,如果您需要更多信息或澄清,请告诉我!
答案 0 :(得分:0)
我可能错了,但我无法在该代码中找到您调用用户词的地方。这可能是你的问题吗?
就像它说here:
class Person extends Eloquent {
public function phone()
{
return $this->hasOne('Phone', 'foreign_key', 'local_key');
}
}
我相信你的意思是Userword(上面的人)有一个用户(上面的电话)所以你可能想要这样的代码:
public function userword(){
return $this->hasOne('Word', 'id', 'word_id');
}
(或无论你的桌子叫什么)
或其他方式:
public function user(){
return $this->belongsTo('userword', 'word_id', 'id');
}
我还没有对此进行测试,但我希望这会有所帮助!