Code Duplication    Length = 36-76 lines in 2 locations

app/Http/Models/Actors.php 1 location

@@ 14-89 (lines=76) @@
11
 * de ma table movies
12
 * Hérite de ma super classe Model
13
 */
14
class Actors extends Model{
15
16
    /**
17
     * Décrit le nom de la table
18
     * que classe fait référence
19
     */
20
    protected $table = 'actors';
21
22
23
24
    public function movies()
25
    {
26
        return $this->belongsToMany('\App\Http\Model\Movies');
27
    }
28
29
30
    /**
31
     * Retourne la moyenne d'age des acteurs
32
     * 1er mode de Laravel pour construire mes requetes
33
     * Cela me permet de conserver une syntaxe pure en Mysql
34
     */
35
    public function getAvgActors(){
36
37
        //1ere methode: Utilisation de MYSQL
38
        // marche mais n'est peu souple
39
         /*
40
          * $results = DB::select('
41
            SELECT ROUND(AVG(TIMESTAMPDIFF(YEAR,dob, NOW()))) as age
42
            FROM actors
43
        ');
44
         */
45
46
47
48
        // 2nd méthode: PHP & MYSQL
49
        // Query Builder: Le constructeur de Requête en Laravel
50
        // DB::table => correspond FROM actors en MYSQL
51
        // select() => corresponds a mon SELECT en MYSQL
52
        // DB::raw() => permet d'utiliser les fonctions MYSQL
53
        // comme ROUND() AVG() NOW()...
54
55
        // first() => corresponds LIMIT 1 en MYSQL
56
57
        // first() => l'equivalent de fetch()
58
        // get() => l'équivalent de fetchAll()
59
60
        // MAITRISE
61
62
          $results = DB::table('actors')
63
            ->select(DB::raw('ROUND(AVG(TIMESTAMPDIFF(YEAR,dob, NOW()))) as age'))
64
            ->first();
65
66
        /*
67
          $results = Actors::select(DB::raw('ROUND(AVG(TIMESTAMPDIFF(YEAR,dob, NOW()))) as age'))
68
            ->first();
69
        */
70
71
        //3eme methode: Eloquant ORM
72
        // Model Actors
73
        // <=> SELECT AVG(dob) FROM actors
74
        //$results = Actors::avg('dob');
75
76
        // je retourne le resultat de ma requete executé
77
        return $results;
78
79
    }
80
81
82
83
84
85
86
87
88
89
}
90
91
92

app/Http/Models/Comments.php 1 location

@@ 14-49 (lines=36) @@
11
 * de ma table movies
12
 * Hérite de ma super classe Model
13
 */
14
class Comments extends Model{
15
16
    /**
17
     * Décrit le nom de la table
18
     * que classe fait référence
19
     */
20
    protected $table = 'comments';
21
22
23
    /**
24
     *  Return the average of notes
25
     */
26
    public function getAvgNote(){
27
        $results = DB::table('comments')
28
            ->select(DB::raw('ROUND(AVG(note)) as avgnote'))
29
            ->first();
30
31
        return $results;
32
    }
33
34
35
36
    /* RELATIONS */
37
38
    public function movie()
39
    {
40
        return $this->belongsTo('\App\Http\Models\Movies', 'movies_id');
41
    }
42
43
    public function user()
44
    {
45
        return $this->belongsTo('\App\Http\Models\Users');
46
    }
47
48
49
}
50
51
52