User.php 1.62 KB
Newer Older
Jens Segers's avatar
Jens Segers committed
1 2
<?php

3
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
4
use Jenssegers\Mongodb\Eloquent\HybridRelations;
duxet's avatar
duxet committed
5 6 7 8
use Illuminate\Auth\Authenticatable;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
9

Jens Segers's avatar
Jens Segers committed
10 11
class User extends Eloquent implements AuthenticatableContract, CanResetPasswordContract
{
12
    use Authenticatable, CanResetPassword, HybridRelations;
13

Dmitry Borzyonok's avatar
Dmitry Borzyonok committed
14
    protected $connection = 'mongodb';
Jens Segers's avatar
Jens Segers committed
15 16
    protected $dates = ['birthday', 'entry.date'];
    protected static $unguarded = true;
17

Jens Segers's avatar
Jens Segers committed
18
    public function books()
Jens Segers's avatar
Jens Segers committed
19
    {
Jens Segers's avatar
Jens Segers committed
20 21 22
        return $this->hasMany('Book', 'author_id');
    }

23 24 25 26 27
    public function mysqlBooks()
    {
        return $this->hasMany('MysqlBook', 'author_id');
    }

Jens Segers's avatar
Jens Segers committed
28 29 30 31 32 33 34 35
    public function items()
    {
        return $this->hasMany('Item');
    }

    public function role()
    {
        return $this->hasOne('Role');
Jens Segers's avatar
Jens Segers committed
36
    }
37

38 39 40 41 42
    public function mysqlRole()
    {
        return $this->hasOne('MysqlRole');
    }

Jens Segers's avatar
Jens Segers committed
43 44 45 46
    public function clients()
    {
        return $this->belongsToMany('Client');
    }
Jens Segers's avatar
Jens Segers committed
47

48 49
    public function groups()
    {
Dmitry Borzyonok's avatar
Dmitry Borzyonok committed
50
        return $this->belongsToMany('Group', 'groups', 'users', 'groups', '_id', '_id', 'groups');
51 52
    }

Jens Segers's avatar
Jens Segers committed
53 54 55 56 57
    public function photos()
    {
        return $this->morphMany('Photo', 'imageable');
    }

58 59 60 61 62
    public function addresses()
    {
        return $this->embedsMany('Address');
    }

63 64 65 66 67
    public function father()
    {
        return $this->embedsOne('User');
    }

68
    public function getDateFormat()
69
    {
Jens Segers's avatar
Jens Segers committed
70
        return 'l jS \of F Y h:i:s A';
71
    }
72
}