Ejemplo n.º 1
0
	public function __construct($source, $dest, $options = null)
	{
		$this->source_class = get_class($source);

		if (isset($options['class_name']))
		{
			$this->dest_class = $options['class_name'];
		}
		else
		{
			$this->dest_class = \Inflector::classify($dest);
		}

		if (isset($options['foreign_key']))
		{
			$this->foreign_key = $options['foreign_key'];
		}
		else
		{
			$this->foreign_key = \Inflector::foreign_key($this->source_class);
		}

		if ( ! class_exists($this->dest_class))
		{
			$this->dest_class = '\\Model\\'.$this->dest_class;
		}

		if ( ! class_exists($this->source_class))
		{
			$this->source_class = '\\Model\\'.$this->source_class;
		}

		$this->options = $options;
	}
Ejemplo n.º 2
0
 public function __construct($source, $dest, $options = null)
 {
     $this->source_class = get_class($source);
     if (isset($options['class_name'])) {
         $this->dest_class = $options['class_name'];
     } else {
         $this->dest_class = \Inflector::classify($dest);
     }
     if (isset($options['foreign_key'])) {
         $this->foreign_key = $options['foreign_key'];
     } else {
         $this->foreign_key = \Inflector::foreign_key($this->source_class);
     }
     $namespace = (\Request::active() ? ucfirst(\Request::active()->module) : '') . '\\';
     if (class_exists($dest = $namespace . 'Model_' . $this->dest_class)) {
         $this->dest_class = $dest;
     }
     if (!class_exists($this->source_class)) {
         $this->source_class = 'Model_' . $this->source_class;
     }
     $this->options = $options;
 }
Ejemplo n.º 3
0
 public function break_up($objects, &$source)
 {
     foreach ($objects as $object) {
         if (isset($this->options['dependent']) && $this->options['dependent'] == 'destroy') {
             $object->destroy();
         } else {
             if (!$this->options['through']) {
                 $object->{$this->foreign_key} = null;
                 $object->save();
             } else {
                 $through_class = \Inflector::classify($this->options['through']);
                 $fk_1 = \Inflector::foreign_key($this->dest_class);
                 $fk_2 = \Inflector::foreign_key($this->source_class);
                 $k1 = $object->{$object->get_primary_key()};
                 $k2 = $source->{$source->get_primary_key()};
                 $through = call_user_func_array(array($through_class, 'find'), array('first', array('where' => array(array($fk_1, '=', $k1), array($fk_2, '=', $k2)))));
                 $through->destroy();
             }
         }
     }
 }