示例#1
0
 public function getModelInstance()
 {
     if (!$this->setup) {
         $this->runSetup();
         $this->setup = true;
     }
     return InjectionContainer::resolve(Nibii::getClassName($this->options['model'], $this->type));
 }
示例#2
0
 public function runSetup()
 {
     $model = InjectionContainer::resolve(Nibii::getClassName($this->options['model'], self::BELONGS_TO));
     if ($this->options['foreign_key'] == null) {
         $this->options['foreign_key'] = $model->getDescription()->getPrimaryKey()[0];
     }
     if ($this->options['local_key'] == null) {
         $this->options['local_key'] = Text::singularize($model->getTable()) . '_id';
     }
 }
示例#3
0
 public function getJunctionClassName($classA, $classB)
 {
     $classBParts = explode('\\', substr(nibii\Nibii::getClassName($classB), 1));
     $classAParts = explode('\\', $classA);
     $joinerParts = [];
     foreach ($classAParts as $i => $part) {
         if ($part == $classBParts[$i]) {
             $joinerParts[] = $part;
         } else {
             break;
         }
     }
     $class = [end($classAParts), end($classBParts)];
     sort($class);
     $joinerParts[] = implode('', $class);
     return implode('\\', $joinerParts);
 }