Вопрос

Если у меня есть красная модель, определенная в моем приложении, которая имеет ряд различных отношений, созданных с другими типами моделей, как я могу получить информацию все эти отношения, не зная ничего другого о модели, с которой я имею дело? .

Например, представьте себе простую модель транзакции, которая может иметь много строк, а также принадлежать одному пользователю.

Теперь, учитывая экземпляр модели транзакции (заселенную или неподвиженную), как я могу узнать об отношениях, которые он имеет к другим моделям?

Просто чтобы быть понятным, я не хочу извлекать фактические связанные данные, я просто хочу выяснить, в каком классе каждый отношения относится и, иначе ли это многое, многие для многих и т. Д.

Любой совет оценил.

Спасибо

Это было полезно?

Решение

Красноватые модели Laravevavel не работают, отношения определены методами в модели и не будут автоматически загружены моделью после здания, следовательно, требование фактически вызывать эти методы, когда вы хотите использовать определенные отношения.

.

При создании класса моделей у него определены нулевые отношения.Это может быть показано следующим:

$user = new User();

print_r($user->getRelations());

//Output : empty array
.

Как вы можете видеть, модель блаженно не знает о любых отношениях, которые он может или не был объявлен в методах отношений.Когда вы называете моделей отношения:

$user = new User();

$user->find(1)->roles()->get();
.

Красноращими устанавливает отношение к модели с использованием метода setRelation($relation, $value), который принимает имя метода, называемого первым аргументом и возвращение этого метода в качестве второго.Таким образом, предоставляя контекст для отношений, которые не существуют, прежде чем вы специально попросите об этом.

Я знаю, что это не то, что вы надеетесь услышать, но нет способа сделать это с красноречивым.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top