Добрый день. Есть таблица tasks. у нее есть id, title, parent_id - который ссылается на id этой же таблицы.
Т.е. есть верхний уровень(т.е. нет parent_id) это проект, далее задача, подзадача. Все. На этом уровень вложенности заканчивается.
Создаю модели: Projects, Tasks, Subtasks.
В Project в defaultScope() делаю 'condition' => 'parent_id IS NULL'. А какие мне прописать conditionЫ в Tasks и Subtasks. Т.е. мне надо как то узнать есть ли у parent_id еще parent_id. Помогите плз. Или подскажите другой, красивый метод реализации.
таблица сама на себя
Re: таблица сама на себя
Если вы используете вложенность н-ного размера то я посоветовал бы NestedSetsBehavior поюзать
Re: таблица сама на себя
Зачем смешивать все в одну кучу? Вроде хотелось сделать хитро, но получилось сложно. Ладно еще задачи и подзадачаи свести в одну таблицу, но почему проект там должен быть? Разделить - и будет счастье.
Если так сильно хочется сделать именно в одной таблице - почему не использовать какое-нибудь поле `type`?
NestedSet - штука хорошая, но в разумных рамках. На 3 уровнях вложенности совершенно лишняя.
Если так сильно хочется сделать именно в одной таблице - почему не использовать какое-нибудь поле `type`?
NestedSet - штука хорошая, но в разумных рамках. На 3 уровнях вложенности совершенно лишняя.
Re: таблица сама на себя
Решено сделать доп колонку TYPE. Решил пойти по пути наименьшего сопротивления. Ну и про NestedSetsBehavior почитаю обязательно... Спасибо.