вот собственно код
$basePath='page/2016/10/';
$field='id_page';
$id=1;
$name='podborka_vecher_01.jpg,%, podborka_vecher_17.jpg'
public function baseSave($basePath,$field,$id,$name){
$transliterator= new Translit();
$bp = array();
if(preg_match('/,%,/',$name)){
$mathes=explode(',%,',$name);
foreach ($mathes as $math){
$bp[] = $basePath;
$names=$transliterator->traranslitImg($math);
$theImage= Image::findOne(['path'=>$basePath, 'name'=>$name ]);
if(!isset($theImage)){
$this->path=$basePath;
$this->$field=$id;
$this->name=$names;
$this->insert();
}
}
}else{
$names=$transliterator->traranslitImg($name);
$theImage= Image::findOne(['path'=>$basePath, 'name'=>$name ]);
if(!isset($theImage)) {
$this->path = $basePath;
$this->$field = $id;
$this->name = $names;
$this->save();
}
}
}
получаю следующую ошибку
SQLSTATE[HY000]: General error: 1364 Field 'path' doesn't have a default value
The SQL being executed was: INSERT INTO `abh_image` (`name`) VALUES ('-podborka_vecher_17.jpg')
не понимаю куда делось работа с этим
$this->path=$basePath;
$this->$field=$id;
и почему работает только
$this->name=$names;
$this->$field = $id
сюда приходит
$field
наименование поля модели в данном случае
'id_page'
$this->path
это поле модели вот они все
'id', 'id_gods', 'id_post', 'id_cat', 'id_page' ,'path' ,'name'
суть в том, что при первой итерации foreach все работает на второй итерации появляется такая ошибка.