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 / HasOne.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
HasOne.php
124 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 HasOne extends HasOneOrMany implements SupportsPartialRelations
15 {
16 use ComparesRelatedModels, CanBeOneOfMany, 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 * Add the constraints for an internal relationship existence query.
57 *
58 * Essentially, these queries compare on column names like "whereColumn".
59 *
60 * @param \Illuminate\Database\Eloquent\Builder $query
61 * @param \Illuminate\Database\Eloquent\Builder $parentQuery
62 * @param array|mixed $columns
63 * @return \Illuminate\Database\Eloquent\Builder
64 */
65 public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*'])
66 {
67 if ($this->isOneOfMany()) {
68 $this->mergeOneOfManyJoinsTo($query);
69 }
70 return parent::getRelationExistenceQuery($query, $parentQuery, $columns);
71 }
72 /**
73 * Add constraints for inner join subselect for one of many relationships.
74 *
75 * @param \Illuminate\Database\Eloquent\Builder $query
76 * @param string|null $column
77 * @param string|null $aggregate
78 * @return void
79 */
80 public function addOneOfManySubQueryConstraints(Builder $query, $column = null, $aggregate = null)
81 {
82 $query->addSelect($this->foreignKey);
83 }
84 /**
85 * Get the columns that should be selected by the one of many subquery.
86 *
87 * @return array|string
88 */
89 public function getOneOfManySubQuerySelectColumns()
90 {
91 return $this->foreignKey;
92 }
93 /**
94 * Add join query constraints for one of many relationships.
95 *
96 * @param \Illuminate\Database\Query\JoinClause $join
97 * @return void
98 */
99 public function addOneOfManyJoinSubQueryConstraints(JoinClause $join)
100 {
101 $join->on($this->qualifySubSelectColumn($this->foreignKey), '=', $this->qualifyRelatedColumn($this->foreignKey));
102 }
103 /**
104 * Make a new related instance for the given model.
105 *
106 * @param \Illuminate\Database\Eloquent\Model $parent
107 * @return \Illuminate\Database\Eloquent\Model
108 */
109 public function newRelatedInstanceFor(Model $parent)
110 {
111 return $this->related->newInstance()->setAttribute($this->getForeignKeyName(), $parent->{$this->localKey});
112 }
113 /**
114 * Get the value of the model's foreign key.
115 *
116 * @param \Illuminate\Database\Eloquent\Model $model
117 * @return mixed
118 */
119 protected function getRelatedKeyFrom(Model $model)
120 {
121 return $model->getAttribute($this->getForeignKeyName());
122 }
123 }
124