Для петли не работает в контроллере laravel - PullRequest
0 голосов
/ 12 декабря 2018

Для цикла не работает $ AllPathsTasgs имеет 2 массива. Итак, count ($ AllPathsTasgs) вернет 2 my, а я возвращаю 2 пути, поэтому сначала следует использовать

$x == 0

Затем следует использовать

$x == 1

но он использует

$x == 1

Для эвакуатора пути не знают, почему

, хотя я использовал dd ($ x);и он возвращает $ x правильно

любая помощь, пожалуйста

foreach ($paths as $path){
    $AllPathsTasgs[]  = $path->pathtags->pluck('name');
}

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

        if ($x == 1) {
            $q->with(['Tasks' => function ($q) use ($AllPathsTasgs, $x) {
                $q->has('tasktags', '=', 2)
                    ->orderBy('id', 'ASC')
                    ->whereDoesntHave('tasktags', function ($query) use ($AllPathsTasgs, $x) {
                        $query->whereNotIn('name', $AllPathsTasgs[1]);
                    })->with('tasktags')->orderBy('id', 'ASC');
            }]);
        }
    }
}])->whereIn('id',$pathId)->get();

1 Ответ

0 голосов
/ 12 декабря 2018

напишите это внутри цикла, и мы снаружи так.

foreach ($paths as $path){
                $AllPathsTasgs[]  = $path->pathtags->pluck('name');    
        $posts3 = Path::with(['ProgrammingField','pathtags' => function ($q) use ($AllPathsTasgs) {
                    for ($x = 0; $x < count($AllPathsTasgs); $x++) {
                        if ($x == 0 ){

                    $q->with(['Tasks' => function ($q) use ($AllPathsTasgs,$x)  {

                        $q->has('tasktags', '=', 2)
                    ->orderBy('id', 'ASC')

                    ->whereDoesntHave('tasktags', function ($query) use ($AllPathsTasgs,$x) {
                               $query->whereNotIn('name', $AllPathsTasgs[0]);

                    })->with('tasktags')->orderBy('id', 'ASC');   
                }]);
            }             
            if ($x == 1 ){

                $q->with(['Tasks' => function ($q) use ($AllPathsTasgs,$x)  {

                    $q->has('tasktags', '=', 2)
                ->orderBy('id', 'ASC')

                ->whereDoesntHave('tasktags', function ($query) use ($AllPathsTasgs,$x) {
                           $query->whereNotIn('name', $AllPathsTasgs[1]);


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


            }]);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...