v_decadence
@v_decadence

Как в Laravel получить информацию о связях?

Всем привет.
Есть ли в Laravel способ для конкретной модели получить информацию об её отношениях?
Например, в виде такого массива:
[
            "hasOne" => [
                "about" => [
                    "model" => "UserAbout",
                    "foreign_key" => "user_id"
                ]
            ],
            "belongsTo" => [
                "company" => [
                    "model" => "Company",
                    "foreign_key" => "company_id"
                ]
            ],
            
            "hasMany" => [
                "posts" => [
                    "model" => "Post",
                    "foreign_key" => "user_id"
                ]
            ]
        ];
  • Вопрос задан
  • 1181 просмотр
Пригласить эксперта
Ответы на вопрос 4
Denormalization
@Denormalization
Нет.
Если нету явного указания (вроде $with = [];), то никак не узнать.
Ответ написан
wielski
@wielski
✔ Совет: Вам помогли? Отметьте ответы решением.
Конкретно информацию о связях получить не удастся.
А для чего конкретно вам это нужно?

Если для оптимизации - поставьте laravel-debugbar, поможет иметь представления о запросах на конкретной странице, и примерно иметь представление о связях. (если понимаете синтакс sql, конечно же)
Ответ написан
AmdY
@AmdY
PHP и прочие вебштучки
Связывание происходит рантайм
public function items() { return $this->hasOne(....); } и только в момент вызова ->items модель узнаёт о ней
потому технически невозможно отследить связи
Ответ написан
Комментировать
Если нужны уже загруженные связи, то $model->getRelations(), а по поводу сохранения модели вместе со связями - посмотрите push() метод. По остальному вам сказали.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы