1
|
|
|
<?php namespace Distilleries\Expendable\Models; |
2
|
|
|
|
3
|
|
|
use Illuminate\Database\Eloquent\Model; |
4
|
|
|
use \DB; |
5
|
|
|
use \Exception; |
6
|
|
|
use Illuminate\Support\Str; |
7
|
|
|
|
8
|
|
|
class BaseModel extends Model |
9
|
|
|
{ |
10
|
|
|
|
11
|
|
|
protected $reserves = [ |
12
|
|
|
'ACCESS', |
13
|
|
|
'ACCOUNT', |
14
|
|
|
'ACTIVATE', |
15
|
|
|
'ADD', |
16
|
|
|
'ADMIN', |
17
|
|
|
'ADVISE', |
18
|
|
|
'AFTER', |
19
|
|
|
'ALL', |
20
|
|
|
'ALL_ROWS', |
21
|
|
|
'ALLOCATE', |
22
|
|
|
'ALTER', |
23
|
|
|
'ANALYZE', |
24
|
|
|
'AND', |
25
|
|
|
'ANY', |
26
|
|
|
'ARCHIVE', |
27
|
|
|
'ARCHIVELOG', |
28
|
|
|
'ARRAY', |
29
|
|
|
'AS', |
30
|
|
|
'ASC', |
31
|
|
|
'AT', |
32
|
|
|
'AUDIT', |
33
|
|
|
'AUTHENTICATED', |
34
|
|
|
'AUTHORIZATION', |
35
|
|
|
'AUTOEXTEND', |
36
|
|
|
'AUTOMATIC', |
37
|
|
|
'BACKUP', |
38
|
|
|
'BECOME', |
39
|
|
|
'BEFORE', |
40
|
|
|
'BEGIN', |
41
|
|
|
'BETWEEN', |
42
|
|
|
'BFILE', |
43
|
|
|
'BITMAP', |
44
|
|
|
'BLOB', |
45
|
|
|
'BLOCK', |
46
|
|
|
'BODY', |
47
|
|
|
'BY', |
48
|
|
|
'CACHE', |
49
|
|
|
'CACHE_INSTANCES', |
50
|
|
|
'CANCEL', |
51
|
|
|
'CASCADE', |
52
|
|
|
'CAST', |
53
|
|
|
'CFILE', |
54
|
|
|
'CHAINED', |
55
|
|
|
'CHANGE', |
56
|
|
|
'CHAR', |
57
|
|
|
'CHAR_CS', |
58
|
|
|
'CHARACTER', |
59
|
|
|
'CHECK', |
60
|
|
|
'CHECKPOINT', |
61
|
|
|
'CHOOSE', |
62
|
|
|
'CHUNK', |
63
|
|
|
'CLEAR', |
64
|
|
|
'CLOB', |
65
|
|
|
'CLONE', |
66
|
|
|
'CLOSE', |
67
|
|
|
'CLOSE_CACHED_OPEN_CURSORS', |
68
|
|
|
'CLUSTER', |
69
|
|
|
'COALESCE', |
70
|
|
|
'COLUMN', |
71
|
|
|
'COLUMNS', |
72
|
|
|
'COMMENT', |
73
|
|
|
'COMMIT', |
74
|
|
|
'COMMITTED', |
75
|
|
|
'COMPATIBILITY', |
76
|
|
|
'COMPILE', |
77
|
|
|
'COMPLETE', |
78
|
|
|
'COMPOSITE_LIMIT', |
79
|
|
|
'COMPRESS', |
80
|
|
|
'COMPUTE', |
81
|
|
|
'CONNECT', |
82
|
|
|
'CONNECT_TIME', |
83
|
|
|
'CONSTRAINT', |
84
|
|
|
'CONSTRAINTS', |
85
|
|
|
'CONTENTS', |
86
|
|
|
'CONTINUE', |
87
|
|
|
'CONTROLFILE', |
88
|
|
|
'CONVERT', |
89
|
|
|
'COST', |
90
|
|
|
'CPU_PER_CALL', |
91
|
|
|
'CPU_PER_SESSION', |
92
|
|
|
'CREATE', |
93
|
|
|
'CURRENT', |
94
|
|
|
'CURRENT_SCHEMA', |
95
|
|
|
'CURREN_USER', |
96
|
|
|
'CURSOR', |
97
|
|
|
'CYCLE', |
98
|
|
|
'DANGLING', |
99
|
|
|
'DATABASE', |
100
|
|
|
'DATAFILE', |
101
|
|
|
'DATAFILES', |
102
|
|
|
'DATAOBJNO', |
103
|
|
|
'DATE', |
104
|
|
|
'DBA', |
105
|
|
|
'DBHIGH', |
106
|
|
|
'DBLOW', |
107
|
|
|
'DBMAC', |
108
|
|
|
'DEALLOCATE', |
109
|
|
|
'DEBUG', |
110
|
|
|
'DEC', |
111
|
|
|
'DECIMAL', |
112
|
|
|
'DECLARE', |
113
|
|
|
'DEFAULT', |
114
|
|
|
'DEFERRABLE', |
115
|
|
|
'DEFERRED', |
116
|
|
|
'DEGREE', |
117
|
|
|
'DELETE', |
118
|
|
|
'DEREF', |
119
|
|
|
'DESC', |
120
|
|
|
'DIRECTORY', |
121
|
|
|
'DISABLE', |
122
|
|
|
'DISCONNECT', |
123
|
|
|
'DISMOUNT', |
124
|
|
|
'DISTINCT', |
125
|
|
|
'DISTRIBUTED', |
126
|
|
|
'DML', |
127
|
|
|
'DOUBLE', |
128
|
|
|
'DROP', |
129
|
|
|
'DUMP', |
130
|
|
|
'EACH', |
131
|
|
|
'ELSE', |
132
|
|
|
'ENABLE', |
133
|
|
|
'END', |
134
|
|
|
'ENFORCE', |
135
|
|
|
'ENTRY', |
136
|
|
|
'ESCAPE', |
137
|
|
|
'EXCEPT', |
138
|
|
|
'EXCEPTIONS', |
139
|
|
|
'EXCHANGE', |
140
|
|
|
'EXCLUDING', |
141
|
|
|
'EXCLUSIVE', |
142
|
|
|
'EXECUTE', |
143
|
|
|
'EXISTS', |
144
|
|
|
'EXPIRE', |
145
|
|
|
'EXPLAIN', |
146
|
|
|
'EXTENT', |
147
|
|
|
'EXTENTS', |
148
|
|
|
'EXTERNALLY', |
149
|
|
|
'FAILED_LOGIN_ATTEMPTS', |
150
|
|
|
'FALSE', |
151
|
|
|
'FAST', |
152
|
|
|
'FILE', |
153
|
|
|
'FIRST_ROWS', |
154
|
|
|
'FLAGGER', |
155
|
|
|
'FLOAT', |
156
|
|
|
'FLOB', |
157
|
|
|
'FLUSH', |
158
|
|
|
'FOR', |
159
|
|
|
'FORCE', |
160
|
|
|
'FOREIGN', |
161
|
|
|
'FREELIST', |
162
|
|
|
'FREELISTS', |
163
|
|
|
'FROM', |
164
|
|
|
'FULL', |
165
|
|
|
'FUNCTION', |
166
|
|
|
'GLOBAL', |
167
|
|
|
'GLOBALLY', |
168
|
|
|
'GLOBAL_NAME', |
169
|
|
|
'GRANT', |
170
|
|
|
'GROUP', |
171
|
|
|
'GROUPS', |
172
|
|
|
'HASH', |
173
|
|
|
'HASHKEYS', |
174
|
|
|
'HAVING', |
175
|
|
|
'HEADER', |
176
|
|
|
'HEAP', |
177
|
|
|
'IDENTIFIED', |
178
|
|
|
'IDGENERATORS', |
179
|
|
|
'IDLE_TIME', |
180
|
|
|
'IF', |
181
|
|
|
'IMMEDIATE', |
182
|
|
|
'IN', |
183
|
|
|
'INCLUDING', |
184
|
|
|
'INCREMENT', |
185
|
|
|
'INDEX', |
186
|
|
|
'INDEXED', |
187
|
|
|
'INDEXES', |
188
|
|
|
'INDICATOR', |
189
|
|
|
'IND_PARTITION', |
190
|
|
|
'INITIAL', |
191
|
|
|
'INITIALLY', |
192
|
|
|
'INITRANS', |
193
|
|
|
'INSERT', |
194
|
|
|
'INSTANCE', |
195
|
|
|
'INSTANCES', |
196
|
|
|
'INSTEAD', |
197
|
|
|
'INT', |
198
|
|
|
'INTEGER', |
199
|
|
|
'INTERMEDIATE', |
200
|
|
|
'INTERSECT', |
201
|
|
|
'INTO', |
202
|
|
|
'IS', |
203
|
|
|
'ISOLATION', |
204
|
|
|
'ISOLATION_LEVEL', |
205
|
|
|
'KEEP', |
206
|
|
|
'KEY', |
207
|
|
|
'KILL', |
208
|
|
|
'LABEL', |
209
|
|
|
'LAYER', |
210
|
|
|
'LESS', |
211
|
|
|
'LEVEL', |
212
|
|
|
'LIBRARY', |
213
|
|
|
'LIKE', |
214
|
|
|
'LIMIT', |
215
|
|
|
'LINK', |
216
|
|
|
'LIST', |
217
|
|
|
'LOB', |
218
|
|
|
'LOCAL', |
219
|
|
|
'LOCK', |
220
|
|
|
'LOCKED', |
221
|
|
|
'LOG', |
222
|
|
|
'LOGFILE', |
223
|
|
|
'LOGGING', |
224
|
|
|
'LOGICAL_READS_PER_CALL', |
225
|
|
|
'LOGICAL_READS_PER_SESSION', |
226
|
|
|
'LONG', |
227
|
|
|
'MANAGE', |
228
|
|
|
'MASTER', |
229
|
|
|
'MAX', |
230
|
|
|
'MAXARCHLOGS', |
231
|
|
|
'MAXDATAFILES', |
232
|
|
|
'MAXEXTENTS', |
233
|
|
|
'MAXINSTANCES', |
234
|
|
|
'MAXLOGFILES', |
235
|
|
|
'MAXLOGHISTORY', |
236
|
|
|
'MAXLOGMEMBERS', |
237
|
|
|
'MAXSIZE', |
238
|
|
|
'MAXTRANS', |
239
|
|
|
'MAXVALUE', |
240
|
|
|
'MIN', |
241
|
|
|
'MEMBER', |
242
|
|
|
'MINIMUM', |
243
|
|
|
'MINEXTENTS', |
244
|
|
|
'MINUS', |
245
|
|
|
'MINVALUE', |
246
|
|
|
'MLSLABEL', |
247
|
|
|
'MLS_LABEL_FORMAT', |
248
|
|
|
'MODE', |
249
|
|
|
'MODIFY', |
250
|
|
|
'MOUNT', |
251
|
|
|
'MOVE', |
252
|
|
|
'MTS_DISPATCHERS', |
253
|
|
|
'MULTISET', |
254
|
|
|
'NATIONAL', |
255
|
|
|
'NCHAR', |
256
|
|
|
'NCHAR_CS', |
257
|
|
|
'NCLOB', |
258
|
|
|
'NEEDED', |
259
|
|
|
'NESTED', |
260
|
|
|
'NETWORK', |
261
|
|
|
'NEW', |
262
|
|
|
'NEXT', |
263
|
|
|
'NOARCHIVELOG', |
264
|
|
|
'NOAUDIT', |
265
|
|
|
'NOCACHE', |
266
|
|
|
'NOCOMPRESS', |
267
|
|
|
'NOCYCLE', |
268
|
|
|
'NOFORCE', |
269
|
|
|
'NOLOGGING', |
270
|
|
|
'NOMAXVALUE', |
271
|
|
|
'NOMINVALUE', |
272
|
|
|
'NONE', |
273
|
|
|
'NOORDER', |
274
|
|
|
'NOOVERRIDE', |
275
|
|
|
'NOPARALLEL', |
276
|
|
|
'NOPARALLEL', |
277
|
|
|
'NOREVERSE', |
278
|
|
|
'NORMAL', |
279
|
|
|
'NOSORT', |
280
|
|
|
'NOT', |
281
|
|
|
'NOTHING', |
282
|
|
|
'NOWAIT', |
283
|
|
|
'NULL', |
284
|
|
|
'NUMBER', |
285
|
|
|
'NUMERIC', |
286
|
|
|
'NVARCHAR2', |
287
|
|
|
'OBJECT', |
288
|
|
|
'OBJNO', |
289
|
|
|
'OBJNO_REUSE', |
290
|
|
|
'OF', |
291
|
|
|
'OFF', |
292
|
|
|
'OFFLINE', |
293
|
|
|
'OID', |
294
|
|
|
'OIDINDEX', |
295
|
|
|
'OLD', |
296
|
|
|
'ON', |
297
|
|
|
'ONLINE', |
298
|
|
|
'ONLY', |
299
|
|
|
'OPCODE', |
300
|
|
|
'OPEN', |
301
|
|
|
'OPTIMAL', |
302
|
|
|
'OPTIMIZER_GOAL', |
303
|
|
|
'OPTION', |
304
|
|
|
'OR', |
305
|
|
|
'ORDER', |
306
|
|
|
'ORGANIZATION', |
307
|
|
|
'OSLABEL', |
308
|
|
|
'OVERFLOW', |
309
|
|
|
'OWN', |
310
|
|
|
'PACKAGE', |
311
|
|
|
'PARALLEL', |
312
|
|
|
'PARTITION', |
313
|
|
|
'PASSWORD', |
314
|
|
|
'PASSWORD_GRACE_TIME', |
315
|
|
|
'PASSWORD_LIFE_TIME', |
316
|
|
|
'PASSWORD_LOCK_TIME', |
317
|
|
|
'PASSWORD_REUSE_MAX', |
318
|
|
|
'PASSWORD_REUSE_TIME', |
319
|
|
|
'PASSWORD_VERIFY_FUNCTION', |
320
|
|
|
'PCTFREE', |
321
|
|
|
'PCTINCREASE', |
322
|
|
|
'PCTTHRESHOLD', |
323
|
|
|
'PCTUSED', |
324
|
|
|
'PCTVERSION', |
325
|
|
|
'PERCENT', |
326
|
|
|
'PERMANENT', |
327
|
|
|
'PLAN', |
328
|
|
|
'PLSQL_DEBUG', |
329
|
|
|
'POST_TRANSACTION', |
330
|
|
|
'PRECISION', |
331
|
|
|
'PRESERVE', |
332
|
|
|
'PRIMARY', |
333
|
|
|
'PRIOR', |
334
|
|
|
'PRIVATE', |
335
|
|
|
'PRIVATE_SGA', |
336
|
|
|
'PRIVILEGE', |
337
|
|
|
'PRIVILEGES', |
338
|
|
|
'PROCEDURE', |
339
|
|
|
'PROFILE', |
340
|
|
|
'PUBLIC', |
341
|
|
|
'PURGE', |
342
|
|
|
'QUEUE', |
343
|
|
|
'QUOTA', |
344
|
|
|
'RANGE', |
345
|
|
|
'RAW', |
346
|
|
|
'RBA', |
347
|
|
|
'READ', |
348
|
|
|
'READUP', |
349
|
|
|
'REAL', |
350
|
|
|
'REBUILD', |
351
|
|
|
'RECOVER', |
352
|
|
|
'RECOVERABLE', |
353
|
|
|
'RECOVERY', |
354
|
|
|
'REF', |
355
|
|
|
'REFERENCES', |
356
|
|
|
'REFERENCING', |
357
|
|
|
'REFRESH', |
358
|
|
|
'RENAME', |
359
|
|
|
'REPLACE', |
360
|
|
|
'RESET', |
361
|
|
|
'RESETLOGS', |
362
|
|
|
'RESIZE', |
363
|
|
|
'RESOURCE', |
364
|
|
|
'RESTRICTED', |
365
|
|
|
'RETURN', |
366
|
|
|
'RETURNING', |
367
|
|
|
'REUSE', |
368
|
|
|
'REVERSE', |
369
|
|
|
'REVOKE', |
370
|
|
|
'ROLE', |
371
|
|
|
// 'ROLES', |
372
|
|
|
'ROLLBACK', |
373
|
|
|
'ROW', |
374
|
|
|
'ROWID', |
375
|
|
|
'ROWNUM', |
376
|
|
|
'ROWS', |
377
|
|
|
'RULE', |
378
|
|
|
'SAMPLE', |
379
|
|
|
'SAVEPOINT', |
380
|
|
|
'SB4', |
381
|
|
|
'SCAN_INSTANCES', |
382
|
|
|
'SCHEMA', |
383
|
|
|
'SCN', |
384
|
|
|
'SCOPE', |
385
|
|
|
'SD_ALL', |
386
|
|
|
'SD_INHIBIT', |
387
|
|
|
'SD_SHOW', |
388
|
|
|
'SEGMENT', |
389
|
|
|
'SEG_BLOCK', |
390
|
|
|
'SEG_FILE', |
391
|
|
|
'SELECT', |
392
|
|
|
'SEQUENCE', |
393
|
|
|
'SERIALIZABLE', |
394
|
|
|
'SESSION', |
395
|
|
|
'SESSION_CACHED_CURSORS', |
396
|
|
|
'SESSIONS_PER_USER', |
397
|
|
|
'SET', |
398
|
|
|
'SHARE', |
399
|
|
|
'SHARED', |
400
|
|
|
'SHARED_POOL', |
401
|
|
|
'SHRINK', |
402
|
|
|
'SIZE', |
403
|
|
|
'SKIP', |
404
|
|
|
'SKIP_UNUSABLE_INDEXES', |
405
|
|
|
'SMALLINT', |
406
|
|
|
'SNAPSHOT', |
407
|
|
|
'SOME', |
408
|
|
|
'SORT', |
409
|
|
|
'SPECIFICATION', |
410
|
|
|
'SPLIT', |
411
|
|
|
'SQL_TRACE', |
412
|
|
|
'STANDBY', |
413
|
|
|
'START', |
414
|
|
|
'STATEMENT_ID', |
415
|
|
|
'STATISTICS', |
416
|
|
|
'STOP', |
417
|
|
|
'STORAGE', |
418
|
|
|
'STORE', |
419
|
|
|
'STRUCTURE', |
420
|
|
|
'SUCCESSFUL', |
421
|
|
|
'SWITCH', |
422
|
|
|
'SYS_OP_ENFORCE_NOT_NULL$', |
423
|
|
|
'SYS_OP_NTCIMG$', |
424
|
|
|
'SYNONYM', |
425
|
|
|
'SYSDATE', |
426
|
|
|
'SYSDBA', |
427
|
|
|
'SYSOPER', |
428
|
|
|
// 'SYSTEM', |
429
|
|
|
'TABLE', |
430
|
|
|
'TABLES', |
431
|
|
|
'TABLESPACE', |
432
|
|
|
'TABLESPACE_NO', |
433
|
|
|
'TABNO', |
434
|
|
|
'TEMPORARY', |
435
|
|
|
'THAN', |
436
|
|
|
'THE', |
437
|
|
|
'THEN', |
438
|
|
|
'THREAD', |
439
|
|
|
'TIMESTAMP', |
440
|
|
|
'TIME', |
441
|
|
|
'TO', |
442
|
|
|
'TOPLEVEL', |
443
|
|
|
'TRACE', |
444
|
|
|
'TRACING', |
445
|
|
|
'TRANSACTION', |
446
|
|
|
'TRANSITIONAL', |
447
|
|
|
'TRIGGER', |
448
|
|
|
'TRIGGERS', |
449
|
|
|
'TRUE', |
450
|
|
|
'TRUNCATE', |
451
|
|
|
'TX', |
452
|
|
|
// 'TYPE', |
453
|
|
|
'UB2', |
454
|
|
|
'UBA', |
455
|
|
|
'UID', |
456
|
|
|
'UNARCHIVED', |
457
|
|
|
'UNDO', |
458
|
|
|
'UNION', |
459
|
|
|
'UNIQUE', |
460
|
|
|
'UNLIMITED', |
461
|
|
|
'UNLOCK', |
462
|
|
|
'UNRECOVERABLE', |
463
|
|
|
'UNTIL', |
464
|
|
|
'UNUSABLE', |
465
|
|
|
'UNUSED', |
466
|
|
|
'UPDATABLE', |
467
|
|
|
'UPDATE', |
468
|
|
|
'USAGE', |
469
|
|
|
'USE', |
470
|
|
|
'USER', |
471
|
|
|
'USING', |
472
|
|
|
'VALIDATE', |
473
|
|
|
'VALIDATION', |
474
|
|
|
'VALUE', |
475
|
|
|
'VALUES', |
476
|
|
|
'VARCHAR', |
477
|
|
|
'VARCHAR2', |
478
|
|
|
'VARYING', |
479
|
|
|
'VIEW', |
480
|
|
|
'WHEN', |
481
|
|
|
'WHENEVER', |
482
|
|
|
'WHERE', |
483
|
|
|
'WITH', |
484
|
|
|
'WITHOUT', |
485
|
|
|
'WORK', |
486
|
|
|
'WRITE', |
487
|
|
|
'WRITEDOWN', |
488
|
|
|
'WRITEUP', |
489
|
|
|
'XID', |
490
|
|
|
'YEAR', |
491
|
|
|
'ZONE', |
492
|
|
|
]; |
493
|
|
|
|
494
|
|
|
/** |
495
|
|
|
* Check if value is an Oracle reserved word. |
496
|
|
|
* |
497
|
|
|
* @param string $value |
498
|
|
|
* @return bool |
499
|
|
|
*/ |
500
|
|
|
public function isReserved($value) |
501
|
|
|
{ |
502
|
|
|
return DB::connection()->getDriverName() == 'oracle' && in_array(Str::upper(trim($value)), $this->reserves, true); |
503
|
|
|
} |
504
|
|
|
|
505
|
|
|
|
506
|
28 |
|
public static function getChoice() |
507
|
|
|
{ |
508
|
|
|
|
509
|
28 |
|
$data = self::all(); |
510
|
28 |
|
$result = []; |
511
|
28 |
|
foreach ($data as $item) |
512
|
|
|
{ |
513
|
28 |
|
$result[$item['id']] = isset($item['libelle']) ? $item['libelle'] : $item['id']; |
514
|
28 |
|
} |
515
|
|
|
|
516
|
28 |
|
return $result; |
517
|
|
|
} |
518
|
|
|
|
519
|
|
|
public function scopeSearch($query, $searchQuery) |
520
|
|
|
{ |
521
|
|
|
|
522
|
12 |
|
return $query->where(function ($query) use ($searchQuery) |
523
|
|
|
{ |
524
|
12 |
|
$columns = $this->getAllColumnsNames(); |
525
|
|
|
|
526
|
|
|
foreach ($columns as $column) |
527
|
|
|
{ |
528
|
|
|
$column = $this->isReserved($column)?'"'.$column.'"':$column; |
529
|
|
|
$query->orWhereRaw('LOWER(' . $column . ') like ?', ['%' . strtolower($searchQuery) . '%']); |
530
|
|
|
} |
531
|
12 |
|
}); |
532
|
|
|
} |
533
|
|
|
|
534
|
16 |
|
public function getAllColumnsNames() |
535
|
|
|
{ |
536
|
16 |
|
switch (DB::connection()->getDriverName()) |
537
|
|
|
{ |
538
|
16 |
|
case 'pgsql': |
539
|
|
|
$query = "SELECT column_name FROM information_schema.columns WHERE table_name = '" . $this->getTable() . "'"; |
540
|
|
|
$column_name = 'column_name'; |
541
|
|
|
$reverse = true; |
542
|
|
|
break; |
543
|
|
|
|
544
|
16 |
|
case 'mysql': |
545
|
|
|
$query = 'SHOW COLUMNS FROM ' . $this->getTable(); |
546
|
|
|
$column_name = 'Field'; |
547
|
|
|
$reverse = false; |
548
|
|
|
break; |
549
|
|
|
|
550
|
16 |
|
case 'sqlsrv': |
551
|
|
|
$parts = explode('.', $this->getTable()); |
552
|
|
|
$num = (count($parts) - 1); |
553
|
|
|
$table = $parts[$num]; |
554
|
|
|
$query = "SELECT column_name FROM " . DB::connection()->getConfig('database') . ".INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'" . $table . "'"; |
555
|
|
|
$column_name = 'column_name'; |
556
|
|
|
$reverse = false; |
557
|
|
|
break; |
558
|
16 |
|
case 'oracle': |
559
|
|
|
$query = 'SELECT COLUMN_NAME from ALL_TAB_COLUMNS WHERE TABLE_NAME=\'' . strtoupper($this->getTable()) . '\' AND DATA_TYPE <> \'CLOB\' AND DATA_TYPE <> \'NUMBER\' AND DATA_TYPE <> \'TIMESTAMP\''; |
560
|
|
|
$column_name = 'column_name'; |
561
|
|
|
$reverse = false; |
562
|
|
|
break; |
563
|
16 |
|
default: |
564
|
16 |
|
$error = 'Database driver not supported: ' . DB::connection()->getConfig('driver'); |
565
|
16 |
|
throw new Exception($error); |
566
|
16 |
|
} |
567
|
|
|
|
568
|
|
|
$columns = array(); |
569
|
|
|
|
570
|
|
|
foreach (DB::select($query) as $column) |
571
|
|
|
{ |
572
|
|
|
$columns[] = $column->$column_name; |
573
|
|
|
} |
574
|
|
|
|
575
|
|
|
if ($reverse) |
576
|
|
|
{ |
577
|
|
|
$columns = array_reverse($columns); |
578
|
|
|
} |
579
|
|
|
|
580
|
|
|
return $columns; |
581
|
|
|
} |
582
|
|
|
|
583
|
16 |
|
public function scopeBetweenCreate($query, $start, $end) |
584
|
|
|
{ |
585
|
16 |
|
return $query->whereBetween($this->getTable() . '.created_at', array($start, $end)); |
586
|
|
|
} |
587
|
|
|
|
588
|
8 |
|
public function scopeBetweenUpdate($query, $start, $end) |
589
|
|
|
{ |
590
|
8 |
|
return $query->whereBetween($this->getTable() . '.updated_at', array($start, $end)); |
591
|
|
|
} |
592
|
|
|
|
593
|
|
|
|
594
|
|
|
|
595
|
|
|
} |