微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

请如何以一对多关系更新多张图像

如何解决请如何以一对多关系更新多张图像

我有两个具有一对多关系的Event和Eventimages模型,我可以上传链接一个事件的许多图像,但是问题是当我尝试通过更新链接到该事件的所有图像来进行编辑时,只有一个图像已上传以替换所有其他图像,因此我的问题是如何一次或单独更新与该事件相关的所有图像?请给予任何帮助。

这是我的活动模型

class Event extends Model

{ 受保护的$ fillable = ['title','date','time','venue','body'];

public function images()
{
    return $this->hasMany('App\Eventimage');
}

}

事件迁移

   public function up()
  {
   Schema::create('events',function (Blueprint $table) {
    $table->id();
    $table->string('title');
    $table->string('date');
    $table->string('time');
    $table->string('venue');
    $table->mediumText('body');
    $table->timestamps();
   });
  }

这是Eventimage模型

class Eventimage extends Model
{

protected $fillable = ['images','caption','event_id'];

public function event()
{
   return $this->belongsTo('App\Event');
}

}

Eventimage迁移

       public function up()
   {
      Schema::create('event_images',function (Blueprint $table) {
       $table->id();   
       $table->string('images');
       $table->string('caption');
       $table->integer('event_id')->unsigned();
       $table->foreign('event_id')->references('id')->on('events')
       ->onDelete('cascade');
       $table->timestamps();
    });
  }

这是EventController

public function store(Request $request)
{


    //Handle File Upload
 if ($request->hasFile('images')) {

    $files = $request->file('images');
    // Get filename with extention 

    foreach($files as $file) {
    $filenamewithExt = $file->getClientOriginalName();
    // Get just filename
    $filename = pathinfo($filenamewithExt,PATHINFO_FILENAME);
    // Get just Extention
    $extension = $file->getClientOriginalExtension();
    // Filename to store
    $filenametoStore = $filename.'_'.time().'.'.$extension;
    // Upload Image
    $path = $file->storeAs('public/images',$filenametoStore);
    }
} else {
    $filenametoStore = 'noimage.jpg';
}



// Create Eventimages
 $event = Event::create($request->all());

   foreach($request->images as $image) {

      $images = $image->store('images');
      $filenamewithExt = $image->getClientOriginalName();
// Get just filename
      $filename = pathinfo($filenamewithExt,PATHINFO_FILENAME);
// Get just Extention
      $extension = $image->getClientOriginalExtension();
// Filename to store
      $filenametoStore = $filename.'_'.time().'.'.$extension;
   Eventimage::create([
    'event_id' => $event->id,'images'   => $filenametoStore,'caption'  => $request->caption,]);
 }


public function update(Request $request,$id)
  {
            //Handle File Upload
 if ($request->hasFile('images')) {

    $files = $request->file('images');
    // Get filename with extention 

    foreach($files as $file) {
    $filenamewithExt = $file->getClientOriginalName();
    // Get just filename
    $filename = pathinfo($filenamewithExt,$filenametoStore);
    }
} else {
    $filenametoStore = 'noimage.jpg';
}



// UPDATE Eventimages
  $event = Event::find($id);
  $event->update($request->all());
  foreach($request->images as $image) {

$images = $image->store('images');
$filenamewithExt = $image->getClientOriginalName();
// Get just filename
$filename = pathinfo($filenamewithExt,PATHINFO_FILENAME);
// Get just Extention
$extension = $image->getClientOriginalExtension();
// Filename to store
$filenametoStore = $filename.'_'.time().'.'.$extension;



$event->images()->update([
    'event_id' => $event->id,]);
   }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。