Получить все отношения записи
Вопрос
Если у меня есть красная модель, определенная в моем приложении, которая имеет ряд различных отношений, созданных с другими типами моделей, как я могу получить информацию все эти отношения, не зная ничего другого о модели, с которой я имею дело? .
Например, представьте себе простую модель транзакции, которая может иметь много строк, а также принадлежать одному пользователю.
Теперь, учитывая экземпляр модели транзакции (заселенную или неподвиженную), как я могу узнать об отношениях, которые он имеет к другим моделям?
Просто чтобы быть понятным, я не хочу извлекать фактические связанные данные, я просто хочу выяснить, в каком классе каждый отношения относится и, иначе ли это многое, многие для многих и т. Д.
Любой совет оценил.
Спасибо
Решение
Красноватые модели Laravevavel не работают, отношения определены методами в модели и не будут автоматически загружены моделью после здания, следовательно, требование фактически вызывать эти методы, когда вы хотите использовать определенные отношения.
.При создании класса моделей у него определены нулевые отношения.Это может быть показано следующим:
$user = new User();
print_r($user->getRelations());
//Output : empty array
.
Как вы можете видеть, модель блаженно не знает о любых отношениях, которые он может или не был объявлен в методах отношений.Когда вы называете моделей отношения:
$user = new User();
$user->find(1)->roles()->get();
.
Красноращими устанавливает отношение к модели с использованием метода setRelation($relation, $value)
, который принимает имя метода, называемого первым аргументом и возвращение этого метода в качестве второго.Таким образом, предоставляя контекст для отношений, которые не существуют, прежде чем вы специально попросите об этом.
Я знаю, что это не то, что вы надеетесь услышать, но нет способа сделать это с красноречивым.