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


PHP Relation::getForeignKey方法代码示例

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


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

 /**
  * @param $joinTableAlias
  * @param $currentTableAlias
  * @param BelongsTo|Relation $relation
  * @param string $columnsPrefix
  */
 protected function addJoinToQuery($joinTableAlias, $currentTableAlias, Relation $relation, $columnsPrefix = '')
 {
     $joinTableName = $relation->getRelated()->getTable();
     $joinTable = implode(' as ', [$joinTableName, $joinTableAlias]);
     $joinLeftCondition = implode('.', [$joinTableAlias, $relation->getOtherKey()]);
     $joinRightCondition = implode('.', [$currentTableAlias, $relation->getForeignKey()]);
     $this->query->leftJoin($joinTable, $joinLeftCondition, '=', $joinRightCondition);
     $columns = $this->getColumns($joinTableName);
     $prefix = static::$prefix . $columnsPrefix . $joinTableAlias . '---';
     foreach ($columns as $column) {
         $this->selectFromQuery($joinTableAlias, $column, $prefix . $column);
     }
 }
开发者ID:leloulight,项目名称:trigglog,代码行数:19,代码来源:WithJoinEloquentBuilder.php

示例3: getJoinKeys

 /**
  * Get 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 HasOne || $relation instanceof MorphOne) {
         return [$relation->getForeignKey(), $relation->getQualifiedParentKeyName()];
     }
     if ($relation instanceof BelongsTo && !$relation instanceof MorphTo) {
         return [$relation->getQualifiedForeignKey(), $relation->getQualifiedOtherKeyName()];
     }
     $class = get_class($relation);
     throw new LogicException("Only HasOne, MorphOne and BelongsTo mappings can be queried. {$class} given.");
 }
开发者ID:rafwlaz,项目名称:eloquence,代码行数:19,代码来源:Mappable.php

示例4: buildBelongsToManyRecord

 /**
  * Parse the fixture data for belongsToManyRecord.
  * The current syntax allows for pivot data to be provided
  * via a pipe delimiter with colon separated key values.
  * <code>
  *    'Travis' => [
  *        'first_name'   => 'Travis',
  *        'last_name'    => 'Bennett',
  *        'roles'         => 'endUser|foo:bar, root'
  *    ]
  * </code>
  *
  * @param  string $recordName The name of the relation the fixture is defined on (e.g Travis).
  * @param  Relation $relation The relationship oject (should be of type belongsToMany).
  * @param  string $relatedRecord The related record data (e.g endUser|foo:bar or root).
  * @return array
  */
 protected function buildBelongsToManyRecord($recordName, Relation $relation, $relatedRecord)
 {
     $pivotColumns = explode('|', $relatedRecord);
     $relatedRecordName = array_shift($pivotColumns);
     $foreignKeyPieces = explode('.', $relation->getForeignKey());
     $foreignKeyName = $foreignKeyPieces[1];
     $foreignKeyValue = $this->generateKey($recordName);
     $otherKeyPieces = explode('.', $relation->getOtherKey());
     $otherKeyName = $otherKeyPieces[1];
     $otherKeyValue = $this->generateKey($relatedRecordName);
     $fields = "{$foreignKeyName}, {$otherKeyName}";
     $values = array($foreignKeyValue, $otherKeyValue);
     foreach ($pivotColumns as $pivotColumn) {
         list($columnName, $columnValue) = explode(':', $pivotColumn);
         $fields .= ", {$columnName}";
         $values[] = $columnValue;
     }
     return array($fields, $values);
 }
开发者ID:codesleeve,项目名称:fixture,代码行数:36,代码来源:Eloquent.php

示例5: joinParameters

 /**
  * Build join parameters.
  *
  * @param Relation $relation
  * @return array
  */
 protected function joinParameters(Relation $relation)
 {
     return [$relation->getRelated()->getTable(), $relation->getQualifiedParentKeyName(), '=', $relation->getForeignKey()];
 }
开发者ID:barryzhang,项目名称:laravel-admin,代码行数:10,代码来源:Model.php

示例6: 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

示例7: preserveKeys

 /**
  * @param Relation $relation
  */
 protected function preserveKeys(Relation $relation)
 {
     if ($relation instanceof HasOneOrMany) {
         $fk = str_replace($this->getTable() . '.', '', $relation->getForeignKey());
         $this->attributes[$fk] = $relation->getParentKey();
     }
 }
开发者ID:TFidryForks,项目名称:spira,代码行数:10,代码来源:BaseModel.php


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