Свойство полиморфной модели отношений «многие ко многим» не возвращает коллекцию, а ->get() возвращает. ⇐ Php
Свойство полиморфной модели отношений «многие ко многим» не возвращает коллекцию, а ->get() возвращает.
У меня есть две модели Product и ProductType, обе из которых связаны с моделью Usp. Я настроил модели следующим образом.
класс Продукт расширяет модель { используйте HasFactory, SoftDeletes; защищенный $guarded = []; публичная функция usps(): MorphToMany { return $this->morphToMany(Usp::class, 'uspable'); } } класс ProductType расширяет модель { используйте HasFactory, SoftDeletes; защищенный $guarded = []; публичная функция usps(): MorphToMany { return $this->morphToMany(Usp::class, 'uspable'); } } класс Usp расширяет модель { используйте HasFactory, SoftDeletes; защищенный $guarded = []; продукты общедоступной функции(): MorphToMany { return $this->morphedByMany(Product::class, 'uspable'); } публичная функция ProductTypes(): MorphToMany { return $this->morphedByMany(ProductType::class, 'uspable'); } } Насколько я вижу, у меня все настроено правильно, но по какой-то странной причине, когда я вызываю свойство модели ProductType, оно возвращает null (т. е. ProductType::find(1)->usps). Но когда я вызываю метод Query Builder ProductType::find(1)->usps()->get(), он дает правильные результаты. Для модели Product и ->usps, и ->usps()->get(), похоже, работают нормально. Я понятия не имею, что я здесь делаю не так.
У меня есть две модели Product и ProductType, обе из которых связаны с моделью Usp. Я настроил модели следующим образом.
класс Продукт расширяет модель { используйте HasFactory, SoftDeletes; защищенный $guarded = []; публичная функция usps(): MorphToMany { return $this->morphToMany(Usp::class, 'uspable'); } } класс ProductType расширяет модель { используйте HasFactory, SoftDeletes; защищенный $guarded = []; публичная функция usps(): MorphToMany { return $this->morphToMany(Usp::class, 'uspable'); } } класс Usp расширяет модель { используйте HasFactory, SoftDeletes; защищенный $guarded = []; продукты общедоступной функции(): MorphToMany { return $this->morphedByMany(Product::class, 'uspable'); } публичная функция ProductTypes(): MorphToMany { return $this->morphedByMany(ProductType::class, 'uspable'); } } Насколько я вижу, у меня все настроено правильно, но по какой-то странной причине, когда я вызываю свойство модели ProductType, оно возвращает null (т. е. ProductType::find(1)->usps). Но когда я вызываю метод Query Builder ProductType::find(1)->usps()->get(), он дает правильные результаты. Для модели Product и ->usps, и ->usps()->get(), похоже, работают нормально. Я понятия не имею, что я здесь делаю не так.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Создайте данные для таблицы отношений «многие ко многим» в ASP.NET Core MVC.
Anonymous » » в форуме C# - 0 Ответы
- 40 Просмотры
-
Последнее сообщение Anonymous
-