Есть сайт, на котором есть админка, в админке предусмотрено добавление/редактирование товаров. У товара есть прикрепленный файл. Во всех решениях, рецептах описывается способ, при котором файл прикрепляется без проблем, но когда редактируешь товар, то приходится все время перезаливать файл. Как сделать так, чтобы при редактировании товара файл надо было загружать только тогда, когда его нужно изменить?
с какого лешего оно будет пустым?
У вас ведь проверка filePath это новый патч от картинки не текущая картинка.
в идиале у вас должно быть так
$model = new Post(['autor_id => Yii::$app->user->id ]);
if($model->load(Yii::$app->request->post()) && $model->validate() ){
// Тут гдето приняли фаил и сохранили в $filePath новый путь к картинке.
if(!empty($filePath)){
$model->image_url = $filePath
}
if($model->save()){
Yii::$app->session->setFlash('success','Form saved!!!');
return $this->redirect(['update','id' => $model->id])
}
}
в public function rules()
правило для image_url
[['image_url '], 'safe'],
означает что вы сами обрабатываете данный параметр где то в коде.
Следовательно если вы принимаете пост данный в модель вот так
if($model->load(Yii::$app->request->post())
и там будет image_url load его не загрузит.