Projekt

Obecné

Profil

Stáhnout (2.77 KB) Statistiky
| Větev: | Revize:
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: Zdenda
5
 * Date: 22.4.2018
6
 * Time: 20:21
7
 */
8

    
9
namespace App\Model;
10

    
11
use Illuminate\Support\Facades\DB;
12

    
13
/**
14
 * Trida reprezentujici entitu zarizeni.
15
 * @package App\Model
16
 */
17
class Zarizeni extends BaseModel
18
{
19

    
20
    /**
21
     * Jmeno tabulky v databazi.
22
     *
23
     * @var string
24
     */
25
    protected $table = 'zarizeni';
26

    
27
    /**
28
     * Vrati vsechna zarizeni.
29
     * Mesto a ulice jsou vraceny spolu se zarizenim.
30
     *
31
     * @return mixed
32
     */
33
    public static function getAllJoinAddress() {
34
        return DB::table('zarizeni')
35
            ->join('ulice', 'zarizeni.ulice_id', '=', 'ulice.id')
36
            ->join('mesto', 'ulice.mesto_id', '=', 'mesto.id')
37
            ->select('zarizeni.id as id',
38
                'zarizeni.smer_popis as name',
39
                'ulice.nazev as street',
40
                'ulice.id as street_id',
41
                'mesto.nazev as town',
42
                'mesto.id as town_id')
43
            ->get();
44
    }
45

    
46
    /**
47
     * Vrati zarizeni nalezene podle adresy (mesto+ulice).
48
     *
49
     * @param $address Adresa, jsou vraceny zaznamy u kterych ulice, nebo mesto odpovida adrese.
50
     * @return mixed
51
     */
52
    public static function findByAddressJoinAddress($address) {
53
        return DB::table('zarizeni')
54
            ->join('ulice', 'zarizeni.ulice_id', '=', 'ulice.id')
55
            ->join('mesto', 'ulice.mesto_id', '=', 'mesto.id')
56
            ->select('zarizeni.id as id',
57
                'zarizeni.smer_popis as name',
58
                'ulice.nazev as street',
59
                'ulice.id as street_id',
60
                'mesto.nazev as town',
61
                'mesto.id as town_id')
62
            ->where('ulice.nazev', 'like', '%'.$address.'%')
63
            ->orWhere('mesto.nazev', 'like', '%'.$address.'%')
64
            ->get();
65
    }
66

    
67
    /**
68
     * Vrati zarizeni se zadanym id.
69
     * Mesto a ulice jsou vraceny spolu se zarizenim.
70
     *
71
     * @param $id Id zarizeni.
72
     * @return mixed
73
     */
74
    public static function findByIdJoinAddress($id) {
75
        return DB::table('zarizeni')
76
            ->join('ulice', 'zarizeni.ulice_id', '=', 'ulice.id')
77
            ->join('mesto', 'ulice.mesto_id', '=', 'mesto.id')
78
            ->select('zarizeni.id as id', 'zarizeni.smer_popis as name', 'ulice.nazev as street', 'ulice.id as street_id', 'mesto.nazev as town', 'mesto.id as town_id')
79
            ->where('zarizeni.id', '=', $id)
80
            ->orderBy('zarizeni.id')
81
            ->first();
82
    }
83

    
84
    /**
85
     * Databazovy klic.
86
     *
87
     * @var long
88
     */
89
    public $id;
90

    
91
    /**
92
     * Popis smeru zarizeni.
93
     *
94
     * @var string
95
     */
96
    public $smer_popis;
97

    
98
    /**
99
     * Stav zarizeni.
100
     *
101
     * @var integer
102
     */
103
    public $stav;
104

    
105
    public function ulice() {
106
        return $this->belongsTo('App\Model\Ulice');
107
    }
108
}
(5-5/6)