galithr: Это велосипед. Стандартная реализация удобней и более гибкая. Как минимум вместо where стоит использовать filterWhere. Сгенерируйте через gii стандартный круд,там будет и search model и контроллер под это. И Возьмите от туда код.
Allanian: Самый простой способ на мой взгляд в моделе сделать публичную переменную $items потом добавить в метод aftersave перебор массива из нее и сохранения данных. Это более интересно чем link хотя бы потому, что link не валидирует данные.
Я думаю, что из коробки не сделали, так как много частных случаев, да и делается это крайне просто. Есть на gitlab куча решений, которые через поведение подключаются к модели и реализуют такую возможность.