ORM – laravel 4: eager to load
I have a table called userwords with a word in it_ ID column, which I want to use to get rows from the words table and join them like a join In this way, everyone will get the information in userwords and words I defined this relationship in userword:
class UserWord extends Eloquent{
public function word(){
$this->belongsTo('Word');
}
}
Then, I try to get all userwords and words as follows:
$words = UserWord::with("word")->
whereRaw("user_id = ".Auth::user()->id.
" AND lang1 = '".$lang1.
"' AND lang2 = '".$lang2."'")
->get();
If I don't have with (), it can work So, what did I do wrong? Or will I have to create an original join to get what I want? I've never had a relationship before, so maybe I'm thinking it's a fundamental mistake? Either way, ask me not only to give the answer, if you can! I read the document and I think it should work, but it's not... I ask here
Editor: the error I got is:
Call to a member function addEagerConstraints() on a non-object
Solution
The definition of your relationship is incorrect. You must return the result of the belongsto method call Try the following:
class UserWord extends Eloquent {
public function word(){
return $this->belongsTo('Word');
}
}
