Вот мой код:Как сохранить несколько файлов в базе данных?
ProductController.php
$this->validate($request, [ 'name' => 'required', 'size' => 'required', 'color' => 'required', 'description' => 'required', 'category' => 'required', 'images' => 'required', ]);
$id = [];
$a = [];
for($i = 0; $i < count($input['images']); $i++){
$name = rand(1,1000).'.'.$input['images'][$i]->getClientOriginalExtension();
$path = $input['images'][$i]->move('products/images', $name);
$images->name = $name;
$images->path = $path;
$images->save();
$a[] = $name;
}
$d = Product::create($input);
$d->category()->attach($request->get('category'));
$x = [];
for($j = 0; $j < count($a); $j++){
$x = $images->where('name', '=', $a[$j])->get();
// $x[] = $a[$j];
}
dd($x);
// $d->images()->attach($x);
Images.php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Images extends Model { protected $table = 'images';
protected $fillable = ['name','path'];
public function product()
{
return $this->belongsToMany('App\Product', 'product_images', 'pro_id', 'img_id');
}
}
product.php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model { protected $table = 'product';
protected $fillable = ['name', 'description', 'size', 'color'];
public function category()
{
return $this->belongsToMany('App\Category', 'product_category', 'pro_id', 'cat_id');
}
public function images()
{
return $this->belongsToMany('App\Images', 'product_images', 'pro_id', 'img_id');
}
}
Схема
Schema::create('images', function(Blueprint $table){
$table->increments('id');
$table->string('name');
$table->string('path');
$table->timestamps();
});
Schema::create('product_images', function(Blueprint $table){
$table->integer('pro_id')->unsigned();
$table->integer('img_id')->unsigned();
$table->foreign('pro_id')
->references('id')
->on('product')
->onUpdate('cascade')
->onDelete('cascade');
$table->foreign('img_id')
->references('id')
->on('images')
->onUpdate('cascade')
->onDelete('cascade');
$table->primary(['pro_id', 'img_id']);
});
Теперь, как я могу прикрепить несколько изображений с продуктом? Пожалуйста, дайте мне решение, и если вам нужно что-то изменить, сообщите мне. Спасибо .....
Я обновил к этому коду
$d = Product::create($input);
$d->category()->attach($request->get('category'));
$a = [];
for($i = 0; $i < count($input['images']); $i++){
$name = rand().'.'.$input['images'][$i]->getClientOriginalExtension();
$path = $input['images'][$i]->move('products/images', $name);
$images->name = $name;
$images->path = $path;
$images->save();
$a[] = $images->id;
}
dd($a);
$d->images()->sync($a);
Теперь, как я могу прикрепить несколько изображений с продуктом? Я получаю только последний идентификатор изображения. Но это должен быть массив идентификаторов из двух или более идентификаторов изображений. Пожалуйста, дайте мне решение, и если вам нужно что-то изменить, сообщите мне. Спасибо.
Я сохраняю несколько изображений в таблице. Теперь, как я могу прикрепить каждое изображение с продуктом в качестве стиля кода? Пожалуйста, помогите мне узнать. –
Можете ли вы отредактировать свой пост, чтобы показать мне, какая у вас структура таблиц? Спасибо –
@Francesco Malatesta.i также ищу тот же ответ http://stackoverflow.com/questions/32478680/how-to-insert-multiple-data-using-relation-in-laravel – iCoders