Есть поле textArea - в нем на каждой новой строчке есть текст, мне нужно каждую новую строчку добавить в один массив. Т.е. разбить весь текст в textArea на строки. А далее я уже создам цикл для этого массива, чтобы добавить значения в БД.
Пробовал explode - он просто перенес текст по строкам, но не занес каждый элемент в массив.
rusnire писал(а):Есть поле textArea - в нем на каждой новой строчке есть текст, мне нужно каждую новую строчку добавить в один массив. Т.е. разбить весь текст в textArea на строки. А далее я уже создам цикл для этого массива, чтобы добавить значения в БД.
Пробовал explode - он просто перенес текст по строкам, но не занес каждый элемент в массив.
Добавил $model->setIsNewRecord(true);, теперь жалуется на primarykey. Пытался так:$model->isPrimaryKey(NULL); - это как понимаю работало в yii1. Дайте путь хоть в справку.
Будущее за нами | Спасибо разработчикам yii2 и всему русскому комьюнити по нему
Ужас. Вы видите что вы просто перезаписываете одно поле в цикле? В итоге в БД остается последнее значение. Во вторых валидацию нужно производить перед сохранением. Если вам нужно $_POST['Direct']['to'] записать в виде N записей в БД - вам нужно, напимер, каждый раз создавать новую модель в цикле.
rusnire писал(а):Добавил $model->setIsNewRecord(true);, теперь жалуется на primarykey. Пытался так:$model->isPrimaryKey(NULL); - это как понимаю работало в yii1. Дайте путь хоть в справку.
Такой вопрос: а что нужно сделать? Если сохранить все строчки в базе, то как то так:
<?php
$this->performAjaxValidation($model);
if($_POST['Direct']) {
$arrayTo = explode("\n", $_POST['Direct']['to']);
foreach ($arrayTo as $to) {
$model = new Direct();
$model->to = $to;
$model->save();
//
// вот этот блок я не понимаю зачем нужен, если каждая строчка это отдельная модель
// и еще такой момент: метод save() сам проводит валидацию, так что в условии можно записать так:
//
// if($model->save()){
//
if($model->validate() && $model->save(false)){
return $this->refresh();
}
}
}