发生的事情是将技术 (Tecnico
) 的服务 (Servicio
) 更改为其他技术。我需要更新表调用 Servicio_Tecnico
中的更改。我不知道该怎么做
Tecnico 模型
class Tecnico extends Eloquent{
protected $table = 'Tecnico';
protected $primaryKey = 'idTecnico';
protected $hidden = array('Contrasena');
protected $fillable = array(
'idTecnico',
'Nombre',
'Apellido',
'Telefono',
'Contrasena',
'Foto',
);
public function servicios(){
return $this->belongsToMany('Servicio', 'Servicio_Tecnico', 'Tecnico_idTecnico', 'Servicio_idServicio');
}
}
服务模型
class Servicio extends Eloquent{
protected $table = 'Servicio';
protected $primaryKey = 'idServicio';
protected $fillable = array(
'Direccion',
'RutaPDF',
'Completado',
'TipoUsuario',
'Zonal',
'RutaCliente',
'Prima'
);
public function tecnicos(){
return $this->belongsToMany('Tecnico', 'Servicio_Tecnico', 'Servicio_idServicio', 'Tecnico_idTecnico');
}
public function materialUsado(){
return $this->hasMany('MaterialUsado', 'Servicio_idServicio');
}
}
这是我尝试更改时的代码
$idTecnico_old = Input::get('idTecnicoViejo');
$idTecnico_new = Input::get('idTecnico');
$idServicio = Input::get('idServicio');
if($idTecnico_new != ''){
$servicio = Servicio::find($idServicio);
$tecnico = $servicio->tecnicos()->get();
$tecnico = $tecnico->find($idTecnico_old);
$tecnico->pivot->Tecnico_idTecnico = $idTecnico_new;
$tecnico->pivot->save;
}
请帮忙
最佳答案
您想对数据透视表使用同步而不是保存。
$servicio = Servicio::find($idServicio);
$servicio->tecnicos()->sync(array('Tecnico_idTecnico' => $idTecnico_new));
$servicio->update();
关于php - 如何更新从 Laravel 中的 N 到 N 关系创建的表的外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24542258/