发生的是将技术(Servicio
)的服务(Tecnico
)更改为其他技术。我需要更新表调用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;
}
请帮助
最佳答案
您想对数据透视表使用sync而不是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/