public function perform()
	{
		$this->guardAgainstImpossibleMove();

		if ( $this->fireMoveEvent( 'moving' ) === false )
			return $this->model;

		if ( $this->hasChange() )
		{
			$self = $this;

			$this->model->getConnection()->transaction( function () use ( $self )
			{
				$self->updateStructure();
			} );

			$this->target->reload();

			$this->model->setDepthWithSubtree();

			$this->model->reload();
		}

		$this->fireMoveEvent( 'moved', false );

		return $this->model;
	}
public function perform()
	{
		$this->guardAgainstImpossibleMove();

		if ( $this->fireMoveEvent( 'moving' ) === false )
			return $this->model;

		if ( $this->hasChange() )
		{
			$self = $this;

			$this->model->getConnection()->transaction( function () use ( $self )
			{
				$self->updateStructure();
			} );

			$this->target->reload();

			$this->model->setDepthWithSubtree();

			$this->model->reload();
		}

		$this->fireMoveEvent( 'moved', false );

		return $this->model;
	}
public function perform ( ) { $ this -> guardAgainstImpossibleMove ( ) ; if ( $ this -> fireMoveEvent ( 'moving' ) === false ) return $ this -> model ; if ( $ this -> hasChange ( ) ) { $ self = $ this ; $ this -> model -> getConnection ( ) -> transaction ( function ( ) use ( $ self ) { $ self -> updateStructure ( ) ; } ) ; $ this -> target -> reload ( ) ; $ this -> model -> setDepthWithSubtree ( ) ; $ this -> model -> reload ( ) ; } $ this -> fireMoveEvent ( 'moved' , false ) ; return $ this -> model ; }
Perform the move operation.

@return NestedModel
Perform the move operation .