Как стремиться загрузить пользовательские отношения? - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть таблица statuses, где я храню свои статусы для нескольких моделей (таблиц).Например:

comments
id | status | text    | ... 
---------------------------
1  | 2      | great.. |
2  | 3      | thats.. |

posts
id | status | body | ...
---------------------------
1  | 4      | hey..| 
2  | 5      | i w..|

statuses
id | type    | title     | ...
---------------------------
1  | comment | succes    |
2  | comment | error     | 
3  | comment | published |
4  | post    | deleted   |
5  | post    | pending   |

Здесь я могу с помощью отношений "принадлежать" получить доступ к соответствующей записи.

class Post extends Model {
    public function status()
    {
        return $this->belongsTo(Status::class, ....);
    }
}

Но я хочу загрузить параметры статуса для комментариев, чтобы я могвыпадающий или что-то в этом роде.Я могу создать пользовательские отношения с где, но это не хочет загружать.

Есть предложения?

1 Ответ

1 голос
/ 18 апреля 2019

Для этого вы можете использовать Локальные области .

Модель состояния

class Status extends Model
{
    public static $COMMENT_STATUS = 'comment';
    public static $POST_STATUS = 'post';

    public function scopeForComments($query)
    {
        return $query->where('type', self::$COMMENT_STATUS);
    }

    public function scopeForPosts($query)
    {
        return $query->where('type', self::$POST_STATUS);
    }
}

Затем в вашем контроллере:

MyController.php

Status::forComments()->get(); //List up all the statuses for comments
Status::forArticles()->get(); //List up all the statuses for articles
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...