У меня полиморфная связь между моделями Image и Product.
Модель изображения:
class Image extends Model {
protected $table = 'images';
public function imageable()
{
return $this->morphTo();
}
}
Модель продукта:
class Product extends Model {
protected $table = 'products';
public function images()
{
return $this->morphMany('App\Image', 'imageable');
}
}
Каждый продукт имеет 3 изображения (фотографии), поэтому, когда я редактирую продукт и редактирую только 1 изображение, то …
Как я могу определить, какое изображение было отредактировано для его обновления?
Метод обновления контроллера продукта:
public function update($id, CreateProductRequest $request)
{
\DB::transaction(function() use ($id, $request)
{
$product = Product::find($id);
$product->name = $request->name;
$product->description = $request->description;
$product->price = $request->price;
//Images upload
//HERE I NEED TO KNOW WHICH IMAGE WAS EDITED TO UPDATE IT ON IMAGES TABLE
$product->save();
});
session()->flash('message', 'Product updated successfully');
return redirect()->action('ProductController@index');
}
Посмотреть структуру:
<div class="form-group">
<label class="col-md-3 col-xs-12 control-label">Image 1</label>
<div class="col-md-6 col-xs-12">
<input id="photo1" name="images[]" class="file" type="file">
</div>
</div>
<div class="form-group">
<label class="col-md-3 col-xs-12 control-label">Image 2</label>
<div class="col-md-6 col-xs-12">
<input id="photo2" name="images[]" class="file" type="file">
</div>
</div>
<div class="form-group">
<label class="col-md-3 col-xs-12 control-label">Image 3</label>
<div class="col-md-6 col-xs-12">
<input id="photo3" name="images[]" class="file" type="file">
</div>
</div>
Задача ещё не решена.
Других решений пока нет …