Laravel для цикла не работает во вложенной функции - PullRequest
0 голосов
/ 08 декабря 2018

Массив AllPathsTasgs[], который имеет 2 тега пути. В примере

[
    "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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...