本文整理匯總了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;
}
示例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()];
}
}