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


PHP Relation::getParent方法代码示例

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


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

示例1: joinRelated

 /**
  *	Adds a join clause to the current relatedQuery using the relation Object.
  *
  *	@param \Illuminate\Database\Query 											$query
  *	@param \Illuminate\Database\Eloquent\Relations\Relation $relation
  *	@return \Illuminate\Database\Querys
  */
 protected function joinRelated($query, $relation)
 {
     $parentTable = $relation->getParent()->getTable();
     $parentKey = $relation->getParent()->getKeyName();
     $relatedTable = $relation->getRelated()->getTable();
     $fk = $relation->getForeignKey();
     $relationType = str_replace('Illuminate\\Database\\Eloquent\\Relations\\', '', get_class($relation));
     switch ($relationType) {
         case 'BelongsTo':
             $query->join($relatedTable, "{$relatedTable}.{$parentKey}", '=', "{$parentTable}.{$fk}");
             break;
         case 'HasOne':
         case 'HasMany':
         case 'MorphOne':
         case 'MorphMany':
             $query->join($relatedTable, "{$parentTable}.{$parentKey}", '=', "{$fk}");
             break;
         case 'BelongsToMany':
             $table = $relation->getTable();
             $otherKey = $relation->getOtherKey();
             $query->join($table, "{$parentTable}.{$parentKey}", '=', "{$fk}")->join($relatedTable, "{$relatedTable}.{$parentKey}", '=', "{$otherKey}");
             break;
         default:
             break;
     }
     return $query;
 }
开发者ID:waavi,项目名称:model,代码行数:34,代码来源:Builder.php

示例2: getJoinKeys

 /**
  * Get pair of the keys from relation in order to join the table.
  *
  * @param  \Illuminate\Database\Eloquent\Relations\Relation $relation
  * @return array
  *
  * @throws \LogicException
  */
 protected function getJoinKeys(Relation $relation)
 {
     if ($relation instanceof MorphTo) {
         throw new LogicException("MorphTo relation cannot be joined.");
     }
     if ($relation instanceof HasOneOrMany) {
         return [$relation->getForeignKey(), $relation->getQualifiedParentKeyName()];
     }
     if ($relation instanceof BelongsTo) {
         return [$relation->getQualifiedForeignKey(), $relation->getQualifiedOtherKeyName()];
     }
     if ($relation instanceof BelongsToMany) {
         return [$relation->getOtherKey(), $relation->getRelated()->getQualifiedKeyName()];
     }
     if ($relation instanceof HasManyThrough) {
         $fk = $relation->getRelated()->getTable() . '.' . $relation->getParent()->getForeignKey();
         return [$fk, $relation->getParent()->getQualifiedKeyName()];
     }
 }
开发者ID:boukeversteegh,项目名称:eloquence,代码行数:27,代码来源:Joiner.php


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