2013-06-05 56 views
1

预先加载贪婪加载使用主键从IN(...)子句中父表,明确Laravel的文件中指出:Laravel /雄辩 - 使用其他与主键

SELECT * FROM书

SELECT * FROM作者那里book_id(1,2,3,4,5,...)

是否有可能不使用从书本此主键,但另一个关键表?甚至是从数据透视表中检索的密钥?

回答

0

是的,我们可以在非主列上进行急切加载。为此,您需要在模型中定义数据库数据的关系: -

定义你的模型书&作者是这样的: -

class Books extends Eloquent { 

    public static $table = 'books';  

    public function bookauthors(){ 
     return $this->has_many('authors','book_id'); 

    } 

} 


class Authors extends Eloquent { 

    public static $table = 'authors'; 


    public function books() 
    { 
      return $this->belongs_to('books','book_id'); 
    } 

} 

现在你可以使用的代码下面一行渴望负载书籍作者一键“book_id”: -

$books = Books::with(array('bookauthors'))->get(); 

我希望这有助于你......我还没有在我的本地或测试数据库进行测试。但是对帖子标签关系使用了类似的热切加载。