I have a question about the relationship. I have an activity model and controller. I guess I searched a lot, I find an attached method for this. But idk how to use it.
I have an activity table like this:
Schema::create('activities', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('title'); $table->string('company_name'); $table->string('price'); $table->string('description'); $table->timestamps(); });
And another table is activity_asset like this:
Schema::create('activity_asset', function (Blueprint $table) { $table->foreignId('activity_id')->constrained(); $table->string('image')->nullable(); $table->string('video')->nullable(); $table->timestamps(); });
Now I don’t know how to relate these two tables. What do I want to do? •
I have a form blade. The inputs title,company_name,price,description, video input, file input. (http://prntscr.com/10nyfd1 )
When I create a new activity (title, company_name, price, description) I want to add to video and image URL to add the activity_asset table with activity id.
Short summary: When I create a new activity, how to add other fields add to the activity_asset table with activity_id.
Thanks a lot.
Advertisement
Answer
Try this
First, create an activity.
$activity = new Activity; $activity->title = $request->title; $activity->company_name = $request->company_name; $activity->price = $request->price; $activity->description = $request->description; $activity->save();
foreach ($request->image as $key => $value) { $image[] = array( 'activity_id' => $activity->id, 'image' => $value, ); } ActivityAsset::insert($image);
foreach ($request->video as $key => $value) { $video[] = array( 'activity_id' => $activity->id, 'video' => $value, ); } ActivityAsset::insert($video);