¿Hay alguna forma de clonar fácilmente un objeto Eloquent, incluidas todas sus relaciones?
Por ejemplo, si tuviera estas tablas:
users ( id, name, email )
roles ( id, name )
user_roles ( user_id, role_id )
Además de crear una nueva fila en la users
tabla, con todas las columnas iguales excepto id
, también debe crear una nueva fila en la user_roles
tabla, asignando el mismo rol al nuevo usuario.
Algo como esto:
$user = User::find(1);
$new_user = $user->clone();
Donde el modelo de usuario tiene
class User extends Eloquent {
public function roles() {
return $this->hasMany('Role', 'user_roles');
}
}