Level 2
The problem is Tag array should have tags for each path but she has all paths tags and every path is compared with it What Should I Do?
Hi Everybody This is My Controller it returns Path with tasks where Path is in URL and returns tasks only where Task Tags is in Path Tags
$path = Path::with('pathtags')->where('id', '=', $Path->id)->first();
$TagArray = $path->pathtags()->pluck('name')->toArray();
$Path= Enrollee::
with('path.ProgrammingField')
->with(['path.pathtags' => function ($q) use ($TagArray)
{
$q->with(['Tasks' => function ($q) use ($TagArray)
{$q->has('tasktags', '=', 2)->orderBy('id', 'ASC')
->whereDoesntHave('tasktags',
function ($query) use ($TagArray) {
$query->whereNotIn('name', $TagArray);
}
)
->with('tasktags');
}]
)->orderBy('id', 'ASC');
}])
->where( 'user_id' , '=' , Auth::user()->id )
->where('Path_id', $Path->id) ->get();
Now I tried To get All User Enroller Paths Using
$user = User::where('id' ,$user->id)->with('paths.pathtags')->first();
$pathId = $user->paths->pluck('id');
$paths = Path::with('pathtags')->whereIn('id', $pathId)->get();
foreach ($paths as $path){
$AllPathsTasgs [] = $path->pathtags->pluck('name');
}
$TagArray = $AllPathsTasgs;
$Paths= Path::with(['ProgrammingField','pathtags' => function ($q) use ($TagArray)
{$q->with(['Tasks' => function ($q) use ($TagArray)
{$q->has('tasktags', '=', 2)->orderBy('id', 'ASC')
->whereDoesntHave('tasktags',
function ($query) use ($TagArray) {
$query->whereNotIn('name', $TagArray);
}
)
->with('tasktags')->orderBy('id', 'DESC');
}]);
}])
->whereIn('id', $pathId)->get();
but Not Working Any ideas
Please or to participate in this conversation.