Blame view

src/Model/Table/StatsTable.php 2.96 KB
409758d9   Etienne Pallier   Ajout d'une nouve...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
namespace App\Model\Table;

use Cake\ORM\Query;
use Cake\ORM\RulesChecker;
use Cake\ORM\Table;
use Cake\Validation\Validator;

/**
 * Stats Model
 *
 * @property \App\Model\Table\UsersTable|\Cake\ORM\Association\BelongsTo $Users
 *
 * @method \App\Model\Entity\Stat get($primaryKey, $options = [])
 * @method \App\Model\Entity\Stat newEntity($data = null, array $options = [])
 * @method \App\Model\Entity\Stat[] newEntities(array $data, array $options = [])
 * @method \App\Model\Entity\Stat|bool save(\Cake\Datasource\EntityInterface $entity, $options = [])
 * @method \App\Model\Entity\Stat saveOrFail(\Cake\Datasource\EntityInterface $entity, $options = [])
 * @method \App\Model\Entity\Stat patchEntity(\Cake\Datasource\EntityInterface $entity, array $data, array $options = [])
 * @method \App\Model\Entity\Stat[] patchEntities($entities, array $data, array $options = [])
 * @method \App\Model\Entity\Stat findOrCreate($search, callable $callback = null, $options = [])
 */
class StatsTable extends Table
{
    /**
     * Initialize method
     *
     * @param array $config The configuration for the Table.
     * @return void
     */
    public function initialize(array $config)
    {
        parent::initialize($config);

        $this->setTable('stats');
        $this->setDisplayField('year');
        $this->setPrimaryKey(['year', 'user_id']);

        $this->belongsTo('Users', [
            'foreignKey' => 'user_id',
            'joinType' => 'INNER'
        ]);
4480648b   Etienne Pallier   Bugfix vues pour ...
43
44
45
46
47
48
        
        /* FK composite possible aussi, ex :
        $this->belongsTo('Students', [
            'foreignKey' => ['program_id', 'location_id', 'course_id'],
        ]);
        */
409758d9   Etienne Pallier   Ajout d'une nouve...
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
    }

    /**
     * Default validation rules.
     *
     * @param \Cake\Validation\Validator $validator Validator instance.
     * @return \Cake\Validation\Validator
     */
    public function validationDefault(Validator $validator)
    {
        $validator
            ->scalar('year')
            ->allowEmptyString('year', 'create');

        $validator
            ->dateTime('last_login_time')
            ->allowEmptyDateTime('last_login_time');

        $validator
            ->dateTime('last_logout_time')
            ->allowEmptyDateTime('last_logout_time');

        $validator
            ->integer('connex_nb')
            ->allowEmptyString('connex_nb', false);

        $validator
            ->integer('connex_dur')
            ->allowEmptyString('connex_dur', false);

        return $validator;
    }

    /**
     * Returns a rules checker object that will be used for validating
     * application integrity.
     *
     * @param \Cake\ORM\RulesChecker $rules The rules object to be modified.
     * @return \Cake\ORM\RulesChecker
     */
    public function buildRules(RulesChecker $rules)
    {
        $rules->add($rules->existsIn(['user_id'], 'Users'));

4480648b   Etienne Pallier   Bugfix vues pour ...
93
94
95
96
        /* Rule avec composite key :
        $rules->add($rules->existsIn([’site_id’, ’article_id’], ’articles’))
        */
        
409758d9   Etienne Pallier   Ajout d'une nouve...
97
98
99
        return $rules;
    }
}