Laravel - Clonar filas

 
Vista:
sin imagen de perfil
Val: 4
Ha disminuido su posición en 2 puestos en Laravel (en relación al último mes)
Gráfica de Laravel

Clonar filas

Publicado por José Maria (4 intervenciones) el 12/03/2019 11:27:47
Buenas,

Estoy intentando hacer una prueba para clonar un Presupuesto.
El caso es que consigo clonar el presupuesto pero no el Detalle del presupuesto.

Tabla presupuesto: N_Presupuesto, Total, etc....
Tabla detalle_presupuesto: id, producto, Presupuesto_id(este es el que lo relaciona)

MODELO PRESUPUESTO:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
 
namespace App;
 
use Illuminate\Database\Eloquent\Model;
 
 
 
class Presupuesto extends Model
{
 
 
	protected  $table ='presupuestos';
	protected  $fillable = ['Npresupuesto','Secuencia','Comentarios','Cliente_id','Total','Usuario_crea_id','Estado_Presupuesto','Descuento','IVA','SubtotalCoste','created_at'];
 
 
	//Creo las relaciones para poder llamar los datos
 
	public function cliente(){
 
		return $this->belongsTo('App\Clientes','Cliente_id');
 
        }
 
 
    public function detalle(){
 
    	return $this->hasMany('App\DetallePresupuesto','Presupuesto_id');
    	// return $this->belongsToMany('App\DetallePresupuesto','Presupuesto_id');
 
    }
 
 
      public function detalle2(){
 
 
    	return $this->belongsToMany('App\DetallePresupuesto');
 
    }
 
 
 
}


Podeis ver que he intentado hacer la relación de 2 formas diferentes por si acaso, pero nada de nada.



CONTROLADOR:

1
2
3
4
5
6
7
8
9
10
11
12
13
public function copiapresupuesto($id){
 
$presupuestos = Presupuesto::find($id);
$clone = $presupuestos->replicate();
$clone->push(); //Push before to get id of $clone
 
	foreach($presupuestos->detalle2 as $d)
	{
	    $clone->detalle2()->attach($d);
	}
 
 
}



Como podeis ver he probado tanto con detalle como con detalle2, pero nada.


Si lo hago con detalle me sale este error:


"Call to undefined method Illuminate\Database\Eloquent\Relations\HasMany::attach()"


Si lo hago con detalle2 me lanza este error:

"SQLSTATE[42S02]: Base table or view not found: 1146 Table 'proyecto_ganafote.detalle_presupuesto_presupuesto' doesn't exist (SQL: select `detalle_presupuestos`.

Algo muy raro porque me pone presupuesto_presupuesto por eso no encuentra esa fila, normal.



Se has ocurre que es lo que puedo estar haciendo mal?
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder