0
votes

Comment obtenir les superviseurs qui ont approuvé toute l'évaluation soumise

Je travaille sur un projet de Laravel-5.8

$employees_that_submitted_assessment = Assessment::where('is_submitted', 1)->get();   //Note:If the submitted assessment approved, is_approved = 1 else 0 

$supervisor_completed_approvals = Employee::get();   


2 commentaires

Dans le modèle de travail de l'employé, la fonction superviseure () .. Est-ce que ça va @mikefolu?


@Abdullahalnoor - Oui, Vérifiez la fonction superviseure (). Chaque employé a un superviseur


4 Réponses :


0
votes

Vous devriez envisager de changer votre colonne IS_Approved à approuve_by si vous devez suivre cette information, puisqu'un employé peut modifier les superviseurs à l'avenir, j'imagine.

Dans ce cas, vous pouvez ajouter les relations suivantes < p> employé.php xxx

évaluation.php xxx

Vous pouvez désormais approuver une logique que vous aimez, comme Ci-dessous: xxx


0 commentaires

0
votes

Essayez comme ceci xxx

lorsque vous devrez DD ($ employé_that_submitted_assessment); Vous trouverez superviseur


0 commentaires

0
votes

Vous pouvez y parvenir avec le constructeur de requêtes. Je crois que cela ressemblerait à ceci:

Employee::query()
    ->whereNull('supervisor_id')
    ->whereNotIn('supervisor_id', function($query){
        $query->select('employee_id')
            ->from('employee_assignments')
            ->join('employee_assignments', 'employee.id', '=', 'employee_assignments.employee_id')
            ->where('employee_assignments.is_submitted', '=', 1)
            ->where('employee_assignments.is_approved', '=', 0);
    })->get();


0 commentaires

0
votes

Vous devez concevoir votre relation de modèle éloquente. Comme je peux le constater, vous n'avez pas fourni la relation entre les objets de l'employeur et le superviseur. Selon votre scénario d'évaluation, un superviseur peut au moins avoir une évaluation des employés et de nombreuses occurrences d'évaluation doivent être traitées par un superviseur. Nous avons donc une relation une-plusieurs entre superviseur et employée.

Vous devez considérer quelque chose comme ceci: p>

  1. relation modèle éloquente p>

    @if(!empty($supervisors))
        //traverse the assessment by supervisor with nested loops
        @foreach($supervisors as $supervisor){
    
            @foreach($supervisor->employeeassements as $assessment){
              //some extra code here using $assessment object
    
             //count the suppervisors here
             ({{ count(($supervisor->employeeassements) }})
            }
        }
    @endif
    
  2. contrôleur p>

        $supervisors = Supervisor::with('employeeassements', 'employee')->orderBy('id', 'desc')->limit(25)->get(); //if you want to limit 25 assessments per query
    
  3. vue p>

    class Supervisor extends Model{
        public function employeeAssessment(){
            return $this->hasMany('App\EmployeeAssessment');
        }            
     }
    
    class EmployeeAssessment extends Model{
        public function supervisor(){
            return $this->belongsTo('App\Supervisor');
        }            
     }
    


0 commentaires