当前位置: 首页>>代码示例>>PHP>>正文


PHP RedBeanModel::getRelationType方法代码示例

本文整理汇总了PHP中RedBeanModel::getRelationType方法的典型用法代码示例。如果您正苦于以下问题:PHP RedBeanModel::getRelationType方法的具体用法?PHP RedBeanModel::getRelationType怎么用?PHP RedBeanModel::getRelationType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在RedBeanModel的用法示例。


在下文中一共展示了RedBeanModel::getRelationType方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: getData

 /**
  *
  * Get model properties as array.
  * return array
  */
 public function getData()
 {
     $data = array();
     $data['id'] = $this->model->id;
     $retrievableAttributes = static::resolveRetrievableAttributesByModel($this->model);
     foreach ($this->model->getAttributes($retrievableAttributes) as $attributeName => $notUsed) {
         $type = ModelAttributeToMixedArrayTypeUtil::getType($this->model, $attributeName);
         $adapterClassName = $type . 'RedBeanModelAttributeValueToArrayValueAdapter';
         if ($type != null && @class_exists($adapterClassName) && !($this->model->isRelation($attributeName) && $this->model->getRelationType($attributeName) != RedBeanModel::HAS_ONE)) {
             $adapter = new $adapterClassName($this->model, $attributeName);
             $adapter->resolveData($data);
         } elseif ($this->model->isOwnedRelation($attributeName) && ($this->model->getRelationType($attributeName) == RedBeanModel::HAS_ONE || $this->model->getRelationType($attributeName) == RedBeanModel::HAS_MANY_BELONGS_TO)) {
             if ($this->model->{$attributeName}->id > 0) {
                 $util = new ModelToArrayAdapter($this->model->{$attributeName});
                 $relatedData = $util->getData();
                 $data[$attributeName] = $relatedData;
             } else {
                 $data[$attributeName] = null;
             }
         } elseif ($this->model->isRelation($attributeName) && $this->model->getRelationType($attributeName) == RedBeanModel::HAS_ONE) {
             if ($this->model->{$attributeName}->id > 0) {
                 $data[$attributeName] = array('id' => $this->model->{$attributeName}->id);
             } else {
                 $data[$attributeName] = null;
             }
         }
     }
     return $data;
 }
开发者ID:RamaKavanan,项目名称:InitialVersion,代码行数:34,代码来源:ModelToArrayAdapter.php

示例2: isRelationASingularRelation

 /**
  * @param string $relation
  * @return bool
  * @throws NotSupportedException if the relation string is malformed
  */
 public function isRelationASingularRelation($relation)
 {
     assert('is_string($relation)');
     $delimiter = FormModelUtil::DELIMITER;
     $relationAndInferredData = explode($delimiter, $relation);
     $derivedRelations = $this->getDerivedRelationsViaCastedUpModelData();
     if (count($relationAndInferredData) == 3) {
         list($modelClassName, $relation, $notUsed) = $relationAndInferredData;
         $type = $this->model->getRelationType($relation);
     } elseif (count($relationAndInferredData) == 2) {
         list($relation, $notUsed) = $relationAndInferredData;
         $type = $this->model->getRelationType($relation);
     } elseif (count($relationAndInferredData) == 1 && isset($derivedRelations[$relation])) {
         $type = $this->model->getDerivedRelationType($relation);
     } elseif (count($relationAndInferredData) == 1) {
         $type = $this->model->getRelationType($relation);
     } else {
         throw new NotSupportedException();
     }
     if ($type == RedBeanModel::HAS_ONE || $type == RedBeanModel::HAS_ONE_BELONGS_TO || $type == RedBeanModel::HAS_MANY_BELONGS_TO) {
         return true;
     }
     return false;
 }
开发者ID:sandeep1027,项目名称:zurmo_,代码行数:29,代码来源:ModelRelationsAndAttributesToWorkflowAdapter.php

示例3: getHasManyOpposingRelationName

 public static function getHasManyOpposingRelationName(RedBeanModel $model, $precedingModelClassName, $precedingRelation)
 {
     assert('is_string($precedingModelClassName)');
     assert('is_string($precedingRelation)');
     foreach ($model->attributeNames() as $attributeName) {
         if ($model->isRelation($attributeName) && ($model->getRelationType($attributeName) == RedBeanModel::HAS_ONE || $model->getRelationType($attributeName) == RedBeanModel::HAS_MANY_BELONGS_TO) && static::relationLinksToPrecedingRelation(get_class($model), $attributeName, $precedingModelClassName, $precedingRelation)) {
             return $attributeName;
         }
     }
 }
开发者ID:RamaKavanan,项目名称:InitialVersion,代码行数:10,代码来源:RedBeanModel.php

示例4: manageModelRelations

 /**
  * @param RedBeanModel $model
  * @param array $modelRelations
  * @return bool
  * @throws ApiException
  */
 protected function manageModelRelations($model, $modelRelations)
 {
     try {
         if (isset($modelRelations) && !empty($modelRelations)) {
             foreach ($modelRelations as $modelRelation => $relations) {
                 if ($model->isAttribute($modelRelation) && ($model->getRelationType($modelRelation) == RedBeanModel::HAS_MANY || $model->getRelationType($modelRelation) == RedBeanModel::MANY_MANY)) {
                     foreach ($relations as $relation) {
                         $relatedModelClassName = $relation['modelClassName'];
                         try {
                             $relatedModel = $relatedModelClassName::getById(intval($relation['modelId']));
                         } catch (Exception $e) {
                             $message = Zurmo::t('ZurmoModule', 'The related model ID specified was invalid.');
                             throw new NotFoundException($message);
                         }
                         if ($relation['action'] == 'add') {
                             $model->{$modelRelation}->add($relatedModel);
                         } elseif ($relation['action'] == 'remove') {
                             $model->{$modelRelation}->remove($relatedModel);
                         } else {
                             $message = Zurmo::t('ZurmoModule', 'Unsupported action.');
                             throw new NotSupportedException($message);
                         }
                     }
                 } else {
                     $message = Zurmo::t('ZurmoModule', 'You can add relations only for HAS_MANY and MANY_MANY relations.');
                     throw new NotSupportedException($message);
                 }
             }
         }
     } catch (Exception $e) {
         $message = $e->getMessage();
         throw new ApiException($message);
     }
     return true;
 }
开发者ID:maruthisivaprasad,项目名称:zurmo,代码行数:41,代码来源:ZurmoModuleApiController.php


注:本文中的RedBeanModel::getRelationType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。