Asignar un objeto como propiedad de la clase de otro objeto
Publicado por Caruso (27 intervenciones) el 06/01/2014 16:41:14
Hola tengo el siguiente codigo en php:
El caso es que no se como hacer, ya que a un equipo le corresponde un empleado, y necesito hacer el getter y el setter para el empleado, osea es un objeto y no un string, lo que hice no esta bien, en la tabla que muestra el navegador tengo ver/editar, que me da el siguiente error:
Catchable fatal error: Argument 1 passed to equipo::setEmpleado() must be an instance of empleado, string given, called in C:\xampp\htdocs\sge\equipo\includes\Equipo.php on line 70 and defined in C:\xampp\htdocs\sge\equipo\includes\Equipo.php on line 37
Por lo que entiendo me esta diciendo que tengo que pasarle un empleado especifico, y no unos nuevo, pero bueno no se si me pueden ayudar.
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
class equipo{
private $_idEquipo;
private $_descripcion;
private $_dirip;
private $_dirmac;
private $_empleado;
public function getIdEquipo(){
return $this->_idEquipo;
}
public function getDescripcion(){
return $this->_descripcion;
}
public function getDirip(){
return $this->_dirip;
}
public function getDirmac(){
return $this->_dirmac;
}
public function getEmpleado(){
return $this->_empleado;
}
public function setIdEquipo($idEquipo){
$this->_idEquipo=$idEquipo;
}
public function setDescripcion($Descripcion){
$this->_descripcion=$Descripcion;
}
public function setDirip($Dirip){
$this->_dirip=$Dirip;
}
public function setDirmac($Dirmac){
$this->_dirmac=$Dirmac;
}
public function setEmpleado(empleado $empleado){
$this->_empleado= new empleado();
}
public function getAll(){
$SQL="select * from equipo";
$bd=new BaseDeDatos();
$result=mysql_query($SQL);
if(!$result) {
die('No se ha podido ejecutar la consulta');
}
$aItems=array();
// Buscamos todas las filas afectadas (Todos los empleados encotnrados)
while($row = mysql_fetch_object($result))
{
$e=new equipo();
$e->setIdEquipo($row->idequipo);
$e->setDescripcion($row->descripcion);
$e->setDirip($row->ip);
$e->setDirmac($row->mac);
$e->setEmpleado(new empleado());
$aItems[] = $e;
}
return $aItems;
}
public function buscar($id){
$bd= new BaseDeDatos();
$SQL="select * from equipo where idequipo='$id'";
$result=mysql_query($SQL);
$row=mysql_fetch_object($result);
$this->setIdEquipo($row->idequipo);
$this->setDescripcion($row->descripcion);
$this->setEmpleado($row->idempleado);
$this->setDirip($row->dirip);
$this->setDirmac($row->dirmac);
}
public function modificar(){
$bd=new BaseDeDatos();
$id=$this->getIdEquipo();
$SQL="update equipo set descripcion='".$_POST['Descripcion']."',empleado= '".$_POST['empleado']."',dirip='".$_POST['dirip']."','".$_POST['dirip']."'where idequipo='$id'";
mysql_query($SQL);
}
public function eliminar(){
$bd=new BaseDeDatos();
$id=$this->getIdEquipo();
$SQL="delete from equipo where idequipo='$id'";
mysql_query($SQL);
}
}
?>
El caso es que no se como hacer, ya que a un equipo le corresponde un empleado, y necesito hacer el getter y el setter para el empleado, osea es un objeto y no un string, lo que hice no esta bien, en la tabla que muestra el navegador tengo ver/editar, que me da el siguiente error:
Catchable fatal error: Argument 1 passed to equipo::setEmpleado() must be an instance of empleado, string given, called in C:\xampp\htdocs\sge\equipo\includes\Equipo.php on line 70 and defined in C:\xampp\htdocs\sge\equipo\includes\Equipo.php on line 37
Por lo que entiendo me esta diciendo que tengo que pasarle un empleado especifico, y no unos nuevo, pero bueno no se si me pueden ayudar.
Valora esta pregunta


0