нужно получить Задачи, где теги задач находятся в $ TagArray - PullRequest
0 голосов
/ 21 октября 2018

Привет Всем, кому нужно получить задание, в котором все теги заданий названы в $TagArrayЯ попытался с моим кодом, но он возвращает Задачи, когда какие-либо теги задач находятся в $TagArray.

Мой код

$Tasks = Path::with(['pathtags' => function ($q) use ($TagArray) {
    $q->with(['Tasks'=>function($q) use ($TagArray) { 
        $q->has('tasktags', '>' , 1)->whereHas('tasktags', function ($query) use ($TagArray) {
            $query->whereIn('name',$TagArray);
        })->with('tasktags');
    }]);
}])->first();

этот запрос проверяет Task->Tags имен в $TagArray, но проблемаявляется то, что он возвращает задачи, когда одно из имен Task-> Tags (tasktags) находится в $ TagArray, мне нужно возвращать Task только тогда, когда все Task->Tags (tasktags) имена находятся в $tasktags.

$query->whereIn('name',$TagArray);

1 Ответ

0 голосов
/ 21 октября 2018

Я думаю, вам лучше использовать Has Many Through.

 public function tags()
 {
    return $this->hasManyThrough('Path', 'PathTag', 'pathtag_id', 'tag_id');
 }

Вы хотите получить теги данного Пути для этого отношения, поэтому:

$path= Path::first();
$path->load(['tags' => function ($q)  use ($TagArray)  {
  $q->whereIn('name',$TagArray);
}]);


$path->tags; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...