コード例 #1
0
ファイル: Relationship.php プロジェクト: ntentan/nibii
 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
ファイル: ClassNameResolver.php プロジェクト: ntentan/ntentan
 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);
 }