我想这样加入。我在哪里出错?

<?php
    for($i=1; $i<=$someValue; $i++){
              $allProjectsList = DB::table('user')
                         ->join('firstTable', 'user.id', '=','firstTable.id')
                         ->join('secondTable', 'user.pidm', '=','secondTable.id')
                         //->where('id', '=', '$anotherValue')
                         ->first();
                         $anotherValue++;
    }
?>


-更新-

这个很好用,但是

<?php
        for($i=1; $i<=$someValue; $i++){
                  $allProjectsList = DB::table('user')
                             ->join('firstTable', 'user.id', '=','firstTable.id')
                             ->join('secondTable', 'user.pidm', '=','secondTable.id')
                             ->where('user.id', '=', '123456')
                             ->first();
        }
?>


我想使用$ x这样的变量来代替'123456',但是它不起作用。有什么建议么 ?

最佳答案

首先使用where语句确实有效。但是它只会返回单个用户模型,在此情况下,get将返回一个集合对象数组。该数组可以容纳零个,一个或多个用户模型。

我认为您遇到的主要问题之一是循环查询(返回一个模型)。应该始终避免在循环中进行查询,而老实说,我什至无法告诉您为什么要在循环中进行查询,因为甚至没有使用$ i,然后在循环中每次迭代都覆盖了$ allProducts值。

如果没有更多的信息和上下文,我将无法为您提供进一步的帮助(除了您似乎为自己想的那样),但是我认为,获得正确答案的答案很重要,这是有关首先了解的信息以及其他人的答案的。寻求帮助。

另一个要注意的是,您似乎将用户模型用作用户模型以外的东西。我鼓励您研究关系,因为您实际上不应该使用一个用户ID返回多个用户模式。
http://laravel.com/docs/4.2/eloquent

10-05 20:46
查看更多