procedimentoId = $procedimentoId; } public function passes($attribute, $value) { return self::isValid($this->procedimentoId, $value); } public static function isValid($procedimentoId, $value) { $ids = collect($value) ->flatMap(function ($item) { return collect($item)->pluck('id'); }) ->filter() ->unique() ->values(); return DB::table('sigtap.classificacao') ->whereIn('id', $ids) ->whereExists(function ($query) use ($procedimentoId) { $query->select(DB::raw(1)) ->from('sigtap.procedimento_classificacao') ->whereColumn('sigtap.procedimento_classificacao.classificacao_id', 'sigtap.classificacao.id') ->where('sigtap.procedimento_classificacao.procedimento_id', $procedimentoId); }) ->exists(); } public function message() { return "Classificação inválida para o procedimento informado."; } }