I am a newbie in Laravel, and I'm trying to use a foreach
loop with updateOrCreate()
in the update function. However, it doesn't work, and there is no error. I have the following three models.
Sales Team
class SalesTeam extends Model
{
public function salesTeamLeaders()
{
return $this->belongsToMany(SalesTeamleader::class);
}
public function salesTeamMember()
{
return $this->belongsToMany(SalesTeamMember::class);
}
public function users()
{
return $this->belongsToMany(User::class);
}
}
Sales Team Leader
class SalesTeamLeader extends Model
{
public function salesTeam()
{
return $this->hasMany(SalesTeam::class);
}
}
Sales Team Member
class SalesTeamMember extends Model
{
public function salesTeam()
{
return $this->hasMany(SalesTeam::class);
}
}
SalesTeam Controller
class SalesTeamController extends Controller
{
// Update
public function update(Request $request, $id)
{
$request->validate([
'name' => 'required',
'description' => '',
]);
$salesteam = SalesTeam::find($id);
$salesteam->name = $request->name;
$salesteam->description = $request->description;
$salesteam->save();
foreach ($request['leaders'] as $leader) {
SalesTeamLeader::updateOrCreate([
'salesteam_id' => $salesteam->id,
'leader_id' => $leader
]);
}
foreach ($request['members'] as $member) {
SalesTeamMember::updateOrCreate([
'salesteam_id' => $salesteam->id,
'member_id' => $member
]);
}
// Flash Message
Session()->flash("success", "ปรับปรุงข้อมูลเรียบร้อยแล้ว!");
return redirect('/admin/salesTeamDashboard');
}
}