我想像这样加入。我哪里出错?
<?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',但它不起作用。有什么建议吗?
答案 0 :(得分:1)
首先使用where语句确实有效。但它只返回一个用户模型,其中get将返回一个集合对象数组。该阵列可以容纳零个,一个或多个用户模型。
我认为你遇到的一个主要问题是你的循环中有你的查询(它返回一个模型)。循环中的查询应该始终避免,我老实说甚至不能告诉你为什么要在循环中使用它,因为$ i甚至没有被使用,然后你在循环中每次迭代都会覆盖$ allProducts值。
如果没有更多的信息和背景,我无法进一步帮助你(除了你自己想象的那些),但我认为有一个关于第一个和第一个正确信息的答案非常重要。其他人来这个问题求助。
另一个注意事项是,您似乎将用户模型用作用户模型以外的其他模型。我鼓励你研究关系,因为你真的不应该用一个用户id返回多个用户模态。 http://laravel.com/docs/4.2/eloquent
答案 1 :(得分:0)
将where语句与 - &gt; first()一起使用不起作用。必须使用where语句 - &gt; get()
这解决了我的问题:
<?php
$allProjectsList = DB::table('user')
->join('firstTable', 'user.id', '=','firstTable.id')
->join('secondTable', 'user.pidm', '=','secondTable.id')
->where('user.id', '=', $aVariable)
->get();
foreach($allProjectsList as $rowValues){
echo('$rowValue->someJoinedFieldValue');
}
?>
感谢您分享您的想法。