PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.5
Independent Analytics – WordPress Analytics Plugin v2.15.5
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / illuminate / database / Eloquent / Relations / MorphOne.php
independent-analytics / vendor / illuminate / database / Eloquent / Relations Last commit date
Concerns 1 month ago BelongsTo.php 2 years ago BelongsToMany.php 1 month ago HasMany.php 2 years ago HasManyThrough.php 1 month ago HasOne.php 1 month ago HasOneOrMany.php 1 month ago HasOneThrough.php 2 years ago MorphMany.php 2 years ago MorphOne.php 1 month ago MorphOneOrMany.php 2 years ago MorphPivot.php 1 month ago MorphTo.php 6 months ago MorphToMany.php 2 years ago Pivot.php 2 years ago Relation.php 1 month ago
MorphOne.php
122 lines
1 <?php
2
3 namespace IAWPSCOPED\Illuminate\Database\Eloquent\Relations;
4
5 use IAWPSCOPED\Illuminate\Contracts\Database\Eloquent\SupportsPartialRelations;
6 use IAWPSCOPED\Illuminate\Database\Eloquent\Builder;
7 use IAWPSCOPED\Illuminate\Database\Eloquent\Collection;
8 use IAWPSCOPED\Illuminate\Database\Eloquent\Model;
9 use IAWPSCOPED\Illuminate\Database\Eloquent\Relations\Concerns\CanBeOneOfMany;
10 use IAWPSCOPED\Illuminate\Database\Eloquent\Relations\Concerns\ComparesRelatedModels;
11 use IAWPSCOPED\Illuminate\Database\Eloquent\Relations\Concerns\SupportsDefaultModels;
12 use IAWPSCOPED\Illuminate\Database\Query\JoinClause;
13 /** @internal */
14 class MorphOne extends MorphOneOrMany implements SupportsPartialRelations
15 {
16 use CanBeOneOfMany, ComparesRelatedModels, SupportsDefaultModels;
17 /**
18 * Get the results of the relationship.
19 *
20 * @return mixed
21 */
22 public function getResults()
23 {
24 if (\is_null($this->getParentKey())) {
25 return $this->getDefaultFor($this->parent);
26 }
27 return $this->query->first() ?: $this->getDefaultFor($this->parent);
28 }
29 /**
30 * Initialize the relation on a set of models.
31 *
32 * @param array $models
33 * @param string $relation
34 * @return array
35 */
36 public function initRelation(array $models, $relation)
37 {
38 foreach ($models as $model) {
39 $model->setRelation($relation, $this->getDefaultFor($model));
40 }
41 return $models;
42 }
43 /**
44 * Match the eagerly loaded results to their parents.
45 *
46 * @param array $models
47 * @param \Illuminate\Database\Eloquent\Collection $results
48 * @param string $relation
49 * @return array
50 */
51 public function match(array $models, Collection $results, $relation)
52 {
53 return $this->matchOne($models, $results, $relation);
54 }
55 /**
56 * Get the relationship query.
57 *
58 * @param \Illuminate\Database\Eloquent\Builder $query
59 * @param \Illuminate\Database\Eloquent\Builder $parentQuery
60 * @param array|mixed $columns
61 * @return \Illuminate\Database\Eloquent\Builder
62 */
63 public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*'])
64 {
65 if ($this->isOneOfMany()) {
66 $this->mergeOneOfManyJoinsTo($query);
67 }
68 return parent::getRelationExistenceQuery($query, $parentQuery, $columns);
69 }
70 /**
71 * Add constraints for inner join subselect for one of many relationships.
72 *
73 * @param \Illuminate\Database\Eloquent\Builder $query
74 * @param string|null $column
75 * @param string|null $aggregate
76 * @return void
77 */
78 public function addOneOfManySubQueryConstraints(Builder $query, $column = null, $aggregate = null)
79 {
80 $query->addSelect($this->foreignKey, $this->morphType);
81 }
82 /**
83 * Get the columns that should be selected by the one of many subquery.
84 *
85 * @return array|string
86 */
87 public function getOneOfManySubQuerySelectColumns()
88 {
89 return [$this->foreignKey, $this->morphType];
90 }
91 /**
92 * Add join query constraints for one of many relationships.
93 *
94 * @param \Illuminate\Database\Query\JoinClause $join
95 * @return void
96 */
97 public function addOneOfManyJoinSubQueryConstraints(JoinClause $join)
98 {
99 $join->on($this->qualifySubSelectColumn($this->morphType), '=', $this->qualifyRelatedColumn($this->morphType))->on($this->qualifySubSelectColumn($this->foreignKey), '=', $this->qualifyRelatedColumn($this->foreignKey));
100 }
101 /**
102 * Make a new related instance for the given model.
103 *
104 * @param \Illuminate\Database\Eloquent\Model $parent
105 * @return \Illuminate\Database\Eloquent\Model
106 */
107 public function newRelatedInstanceFor(Model $parent)
108 {
109 return $this->related->newInstance()->setAttribute($this->getForeignKeyName(), $parent->{$this->localKey})->setAttribute($this->getMorphType(), $this->morphClass);
110 }
111 /**
112 * Get the value of the model's foreign key.
113 *
114 * @param \Illuminate\Database\Eloquent\Model $model
115 * @return mixed
116 */
117 protected function getRelatedKeyFrom(Model $model)
118 {
119 return $model->getAttribute($this->getForeignKeyName());
120 }
121 }
122