Laravel 4 Laravel查询生成器动态嵌套where/orWhere
我希望有人能帮我指引正确的方向。我是拉威尔的新手,远不是最好的php程序员。我试图构建动态嵌套的where/orWhere子句,我被卡住了,我的意思是我无法理解它。到目前为止,我掌握的代码是:Laravel 4 Laravel查询生成器动态嵌套where/orWhere,laravel-4,Laravel 4,我希望有人能帮我指引正确的方向。我是拉威尔的新手,远不是最好的php程序员。我试图构建动态嵌套的where/orWhere子句,我被卡住了,我的意思是我无法理解它。到目前为止,我掌握的代码是: public static function runNested($rId, $current_id) { $insidestuff = DB::table('tableName') ->select('all fields necessary') ...
public static function runNested($rId, $current_id) {
$insidestuff = DB::table('tableName')
->select('all fields necessary')
...
->get();
$count=1;
foreach ($insidestuff as $inside)
{
$var1 = $inside->var1;
$var2 = $inside->var2;
$var3 = $inside->var3;
$var4 = $inside->var4;
if ($count == 1)
{
$outsideMet = $outsideMet->where(function($query) use ($var1, $var2, $var3, $var4, $id)
{
$query->where($var1, $var2, $var3);
$outsideMet = myClass::runNested($var4, $id);
});
} else {
$outsideMet = $outsideMet->orWhere(function($query) use ($var1, $var2, $var3, $var4, $id)
{
$query->where($var1, $var2, $var3);
$outsideMet = myClass::runNested($var4, $id);
});
}
$count++;
}
}
public static function runOutside($rId) {
$outsideQuery = DB::table('tableName')
->select('all necessary fields')
->get();
$outsideMet = dbTable::select('*');
$outsideMet = $outsideMet->leftJoin('necessary fields');
$outsideCount=1;
foreach ($oursideQuery as $oQuery)
{
$oVar1 = $oQuery->oVar1;
$oVar2 = $oQuery->oVar2;
$oVar3 = $oQuery->oVar3;
$oVar4 = $oVar4;
$oVar5 = $oQuery->oVar5;
if ($outsideCount == 1)
{
$outsideMet = $outsideMet->where(function($query) use ($oVar1, $oVar2, $oVar3, $oVar4, $oVar5)
{
$query->where($oVar1, $oVar2, $oVar3);
$outsideMet = myClass::runNested($oVar4, $oVar5);
});
} else {
$outsideMet = $outsideMet->orWhere(function($query) use ($oVar1, $oVar2, $oVar3, $oVar4, $oVar5)
{
$query->where($oVar1, $oVar2, $oVar3);
$outsideMet = myClass::runNested($oVar4, $oVar5);
});
}
$outsideCount++;
}
$outsideMet = $outsideMet->count();
我希望有人能告诉我如何正确地做到这一点,如果上面的代码很接近,我做错了什么。提前感谢您的帮助和指导。。在
runOutside
功能的foreach
循环中有一个输入错误$oursideQuery
而不是$outsideQuery
。不幸的是,打字错误不是问题所在。我认为上面的语法不正确,特别是花括号和嵌套函数之间传递的变量命名。我希望有人能帮助我朝着正确的方向前进。