Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
5765 efrain 1
<?php
2
declare(strict_types=1);
3
 
4
namespace LeadersLinked\Mapper;
5
 
6
use LeadersLinked\Mapper\Common\MapperCommon;
7
use Laminas\Db\Adapter\AdapterInterface;
8
use LeadersLinked\Model\MyCoachCategoryUser;
9
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
10
 
11
 
12
class MyCoachCategoryUserMapper extends MapperCommon
13
{
14
    const _TABLE = 'tbl_my_coach_category_users';
15
 
16
    /**
17
     *
18
     * @varMyCoachCategoryUserMapper
19
     */
20
    private static $_instance;
21
 
22
    /**
23
     *
24
     * @param AdapterInterface $adapter
25
     */
26
    private function __construct($adapter)
27
    {
28
        parent::__construct($adapter);
29
    }
30
 
31
    /**
32
     *
33
     * @param AdapterInterface $adapter
34
     * @return MyCoachCategoryUserMapper
35
     */
36
    public static function getInstance($adapter)
37
    {
38
        if(self::$_instance == null) {
39
            self::$_instance = new MyCoachCategoryUserMapper($adapter);
40
        }
41
        return self::$_instance;
42
    }
43
 
44
    /**
45
     *
46
     * @param int $category_id
47
     * @param int $user_id
48
     * @return MyCoachCategoryUser
49
     */
50
    public function fetchOneByCategoryIdAndUserId($category_id, $user_id)
51
    {
52
 
53
        $select = $this->sql->select(self::_TABLE);
54
        $select->where->equalTo('category_id', $category_id);
55
        $select->where->equalTo('user_id', $user_id);
56
 
57
        //echo $select->getSqlString($this->adapter->platform);
58
 
59
        $prototype = new MyCoachCategoryUser();
60
        return $this->executeFetchOneObject($select, $prototype);
61
    }
62
 
63
 
64
 
65
 
66
 
67
 
68
    /**
69
     *
70
     * @param
71
     * @return MyCoachCategoryUser[]
72
     */
73
    public function fetchAllByCategoryId($category_id)
74
    {
75
 
76
        $select = $this->sql->select(self::_TABLE);
77
        $select->where->equalTo('category_id', $category_id);
78
 
79
 
80
        $prototype = new MyCoachCategoryUser();
81
        return $this->executeFetchAllObject($select, $prototype);
82
    }
83
 
84
    /**
85
     *
86
     * @param int $category_id
87
     * @return boolean
88
     */
89
    public function deleteAllByCategoryId($category_id)
90
    {
91
        $delete = $this->sql->delete(self::_TABLE);
92
        $delete->where->equalTo('category_id', $category_id);
93
 
94
        return $this->executeDelete($delete);
95
    }
96
 
97
    /**
98
     *
99
     * @param int $category_id
100
     * @param int $user_id
101
     * @return boolean
102
     */
103
    public function  deleteOneByCategoryIdAndUserId($category_id, $user_id)
104
    {
105
        $delete = $this->sql->delete(self::_TABLE);
106
        $delete->where->equalTo('category_id', $category_id);
107
        $delete->where->equalTo('user_id', $user_id);
108
 
109
        return $this->executeDelete($delete);
110
    }
111
 
112
 
113
    /**
114
     *
115
     * @param int $id
116
     * @return boolean
117
     */
118
    public function  delete($id)
119
    {
120
 
121
        $delete = $this->sql->delete(self::_TABLE);
122
        $delete->where->equalTo('id', $id);
123
 
124
        return $this->executeDelete($delete);
125
    }
126
 
127
    /**
128
     *
129
     * @param MyCoachCategoryUser $record
130
     * @return boolean
131
     */
132
    public function insert($record) {
133
        $hydrator = new ObjectPropertyHydrator();
134
        $values = $hydrator->extract($record);
135
        $values = $this->removeEmpty($values);
136
 
137
        $insert = $this->sql->insert(self::_TABLE);
138
        $insert->values($values);
139
        $result = $this->executeInsert($insert);
140
        if($result) {
141
            $record->id = $this->lastInsertId;
142
        }
143
 
144
       return $result;
145
    }
146
 
147
 
148
 
149
    /**
150
     *
151
     * @param MyCoachCategoryUser $record
152
     * @return boolean
153
     */
154
    public function update($record)
155
    {
156
        $hydrator = new ObjectPropertyHydrator();
157
        $values = $hydrator->extract($record);
158
        $values = $this->removeEmpty($values);
159
 
160
        $update = $this->sql->update(self::_TABLE);
161
        $update->set($values);
162
        $update->where->equalTo('id', $record->id);
163
 
164
 
165
        return $this->executeUpdate($update);
166
    }
167
}