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:
Podeis ver que he intentado hacer la relación de 2 formas diferentes por si acaso, pero nada de nada.
CONTROLADOR:
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
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


0