Александр Богомаз, ну таблица locales у вас становится как { id: int, code: char, content: json}. а в модели прописываете $cast = ['content' => 'object']; Можно как нибудь и более прилично - здесь есть более интересные варианты https://jessarcher.com/articles/casting-json-colum...
и тогда у вас будет $locale->content->title, $locale->content->description
Александр Богомаз, ну в таком случае ваш подход мне кажется неверным - потому что вы не знаете сколько там будет записей, и $product->locale[3]['field_value'] может не быть. А если вы точно уверены что в $product будет такое то количество записей - а в какой то модели такое то - то теряется смысл полиморфа. Потому вам все равно надо париться что у вас там и как лежит. Если у вас нет поиска по значениями этих полей - может вам json заюзать и cast в object?
Александр Богомаз, нет, не решают. однако если вам нужны все локали, смысл вам в обращении $locales['en']? Есть вариант $category->locales->where('code, 'en')->first()->value.
Владислав Лысков, если вы внимательно посмотрите на мой ник - вы внезапно обнаружите что у нее нет надписи "автор вопроса". Отсюда следует вывод что я вам конечно могу многое показать - но вряд ли то как автор вопроса формирует коллекцию.
Владислав Лысков, в ларке из коробки да. но если посмотреть на вопрос, то здесь переводы добавляются к записям в моделях. Что бы в админке сразу вносились вместе с добавлением параметров.
Здорово. И как вы представляете внесение перевода в добавленнyю в бд запись о категории или новости, через ларковский json?
Сотрудников Авито в районе 4к человек, при этом Авито было убыточно еще лет 5 назад с 2007 года. Смотреть надо не на стэк а на бюджет. Смутно представляю как человек имеющий бюджет кормить прорву народа 15 лет будет выбирать стэк через qna. А если бы был такой бюджет то вопрос решался бы смахиванием пары людей из управления и команды. По этому мой ответ положить болт.