雄辩的关系 - 附加(但不保存)关系的关系

时间:2014-12-15 14:19:44

标签: laravel laravel-4 eloquent

我设置了以下关系:

class Carpeta extends Eloquent {

    public $timestamps = false;
    protected $primaryKey='id_carpeta'; 
    protected  $table='tdoc_carpetas';

    public  function detallesMantenimiento()
    {
        return $this->hasMany('DetalleMantenimiento','id_carpeta');
    }
}

class DetalleMantenimiento extends Eloquent {

    public $timestamps = false;
    protected $primaryKey='id_detalle_mantenimiento'; 
    protected  $table='tdoc_detalle_mantenimiento';

    public function detallesPiezasMantenimiento() 
    { 
        return $this->hasMany('DetallePiezasMantenimiento','id_detalle_mantenimiento'); 
    }            
}

class DetallePiezasMantenimiento extends Eloquent {

    public $timestamps = false;
    protected $primaryKey='id_detalle_piezas_mantenimiento'; 
    protected  $table='tdoc_detalle_piezas';

    public function detalleMantenimiento()
    {
        return $this->belongsTo('DetalleMantenimiento','id_detalle_mantenimiento'); 
    }
}

我的问题是如何附上(不保存)DetallePiezasMantenimiento的项目,我尝试如下:

$detallePieza = new DetallePiezasMantenimiento();
$carpeta->detallesMantenimiento->detallesPiezasMantenimiento->add($detallePieza);

Undefined property: Illuminate\Database\Eloquent\Collection::$detallesPiezasMantenimiento返回。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

由于detallesMantenimiento是一个集合,您需要循环它以将$detallePieza添加到关系结果

$detallePieza = new DetallePiezasMantenimiento();
foreach($carpeta->detallesMantenimiento as $detalleMantenimiento){
    $detalleMantenimiento->detallesPiezasMantenimiento->add($detallePieza);
}