本文整理汇总了PHP中RedBeanModel::getInferredRelationModelClassNamesForRelation方法的典型用法代码示例。如果您正苦于以下问题:PHP RedBeanModel::getInferredRelationModelClassNamesForRelation方法的具体用法?PHP RedBeanModel::getInferredRelationModelClassNamesForRelation怎么用?PHP RedBeanModel::getInferredRelationModelClassNamesForRelation使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RedBeanModel
的用法示例。
在下文中一共展示了RedBeanModel::getInferredRelationModelClassNamesForRelation方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: processCreateRelatedAction
/**
* Notice the use of $modelToForgetCache. This was needed to avoid a caching issue with the following example.
* If an opportunity fires, and a related account's opportunity is created. This new opportunity had a cached
* model for account that was null. So this is fixed by forgetting the new model after it is added to the account.
* @throws FailedToSaveModelException
* @throws NotSupportedException
*/
protected function processCreateRelatedAction()
{
if ($this->action->relationFilter != ActionForWorkflowForm::RELATION_FILTER_ALL) {
throw new NotSupportedException();
}
$modelClassName = get_class($this->triggeredModel);
if ($this->triggeredModel->isADerivedRelationViaCastedUpModel($this->action->relation) && $this->triggeredModel->getDerivedRelationType($this->action->relation) == RedBeanModel::MANY_MANY) {
foreach (WorkflowUtil::resolveDerivedModels($this->triggeredModel, $this->action->relation) as $relatedModel) {
if ($this->resolveCreateModel($relatedModel, $this->action->relatedModelRelation)) {
$saved = $relatedModel->save();
if (!$saved) {
throw new FailedToSaveModelException();
}
}
}
} elseif ($this->triggeredModel->getInferredRelationModelClassNamesForRelation(ModelRelationsAndAttributesToWorkflowAdapter::resolveRealAttributeName($this->action->relation)) != null) {
foreach (WorkflowUtil::getInferredModelsByAtrributeAndModel($this->action->relation, $this->triggeredModel) as $relatedModel) {
if ($this->resolveCreateModel($relatedModel, $this->action->relatedModelRelation)) {
$saved = $relatedModel->save();
if (!$saved) {
throw new FailedToSaveModelException();
}
}
}
} elseif ($this->triggeredModel->{$this->action->relation} instanceof RedBeanMutableRelatedModels) {
foreach ($this->triggeredModel->{$this->action->relation} as $relatedModel) {
if ($this->resolveCreateModel($relatedModel, $this->action->relatedModelRelation)) {
$saved = $relatedModel->save();
if (!$saved) {
throw new FailedToSaveModelException();
}
}
}
} elseif ($modelClassName::isRelationTypeAHasOneVariant($this->action->relation) && !$modelClassName::isOwnedRelation($this->action->relation)) {
$relatedModel = $this->triggeredModel->{$this->action->relation};
$modelToForgetCache = null;
if ($this->resolveCreateModel($relatedModel, $this->action->relatedModelRelation, $modelToForgetCache)) {
$saved = $relatedModel->save();
if (!$saved) {
throw new FailedToSaveModelException();
}
if ($modelToForgetCache instanceof RedBeanModel) {
$modelToForgetCache->forget();
}
}
} else {
throw new NotSupportedException();
}
}
示例2: getInferredRelationModelClassNamesForRelation
/**
* @param $relation
* @return null|string
*/
protected function getInferredRelationModelClassNamesForRelation($relation)
{
assert('is_string($relation)');
return $this->model->getInferredRelationModelClassNamesForRelation($relation);
}