Php 如何在laravel中更新从N到N关系创建的表的外键?
发生的情况是将技术(Php 如何在laravel中更新从N到N关系创建的表的外键?,php,mysql,laravel,laravel-4,Php,Mysql,Laravel,Laravel 4,发生的情况是将技术(Tecnico)的服务(Servicio)更改为其他技术服务。我需要更新表调用中的更改Servicio_Tecnico。我不知道怎么做 Tecnico车型 class Tecnico extends Eloquent{ protected $table = 'Tecnico'; protected $primaryKey = 'idTecnico'; protected $hidden = array('Contrasena'); protected $fillable =
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');
}
}
服务模式
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();
谢谢,我做了一点小改动
$servicio->tecnicos()->同步(数组('Tecnico_idTecnico'=>$idTecnico_new))代码>