Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在laravel中更新从N到N关系创建的表的外键?_Php_Mysql_Laravel_Laravel 4 - Fatal编程技术网

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))