Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 14.05.2018 17:36:39

Связи и выборка на Eloquent

Версия Laravel: 5.7
Версия PHP: 7.2
Операционная система и её версия: Windows
Вендор и версия сервера БД: Mysql 5.7
Вендор и версия Веб-сервера: OpenServer 5.2.2

Задача, что должно происходить _в целом_, техническое задание:
Должен выводится список наименований

В бд `table1` и `table2`, у `table1` есть - `parents_id` = '11111, 33333'
в `table2` хранятся альтернативные название для генерации url , например alt_name = `skazki`

Как в модели `table1` написать чтобы при выборке выбралось только первое значение в - "11111" чтобы по нему можно было выполнить второй селект или join и получить альтернативное название родительской категории данной статьи

Варианты/догадки, почему это произошло:
пробовал в модели прописать в надежде что преобразование в интежер сам обрежет до символа отличного от числа через
    protected $casts = [
        'parents_id' => 'integer',
      ];
Но не дало результата, есть мысль конечно просто создать в дб новое поле аля first_parrent и выводить без этого танца с бубном но это будет лишний вес в бд, чего не очень бы хотелось, или просто написать сырой запрос типа.

"SELECT
`a`.*,
(SELECT `url` FROM `table1` AS `b` WHERE `b`.`id` = `a`.`parents_id`) AS
`parent_url` FROM `table2` AS `a`
WHERE `url` LIKE '%{$parPath['url']}%' AND `folder` = '1'");

С ларой только начинаю дружить и хочется все сделать правильно через Eloquent . Помогите кто может)

Не в сети

#2 14.05.2018 18:00:38

Re: Связи и выборка на Eloquent

Так же была мысль просто сделать слект и потом через whereIn получить список всех альтренативных имен из table2 и потом с помощью цикла дописать их в table1, но это не варик т.к. такая беда, 1. одинаковые parents_id группируются, 2. сбивается их сортировка

Не в сети

Подвал раздела