laravel for循环不适用于嵌套函数

时间:2018-12-08 14:19:20

标签: php laravel for-loop laravel-5 laravel-5.2

具有2个路径标签的数组AllPathsTasgs[] 在示例中

[
    "php",
    "HTML5",
    "CSS3",
    "XML"
],
[
    "HTML5",
    "CSS3",
    "JavaScript",
    "Bootstrab"
]

我正在尝试使用下面的行来访问具有路径标签之类的任务

$query->whereNotIn('name', $AllPathsTasgs[$x]);

并且可以很好地使用第一个路径,但是它在每个路径中都使用第一个数组 表示

第一个路径应类似于

$query->whereNotIn('name', $AllPathsTasgs[$x]); and x here = 0

没关系,但是问题出在下一个路径

$query->whereNotIn('name', $AllPathsTasgs[$x]); x = 0 not 1

不知道为什么会发生

     foreach ($paths as $path){
        $AllPathsTasgs[]  = $path->pathtags->pluck('name');
 }
$posts3 = Path::with(['ProgrammingField','pathtags' => function ($q) use ($AllPathsTasgs,$pathsTags) {
    $q->with(['Tasks' => function ($q) use ($AllPathsTasgs,$pathsTags)  {
    $q->has('tasktags', '=', 2)
    ->orderBy('id', 'ASC')
    ->whereDoesntHave('tasktags', function ($query) use ($AllPathsTasgs,$pathsTags) {
        for ($x = 0; $x < count($pathsTags); $x++) {
               $query->whereNotIn('name', $AllPathsTasgs[$x]);
        }

    })->with('tasktags')->orderBy('id', 'ASC');

}]);
}])->whereIn('id',$pathId)->get();

0 个答案:

没有答案