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 / MorphPivot.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
MorphPivot.php
147 lines
1 <?php
2
3 namespace IAWPSCOPED\Illuminate\Database\Eloquent\Relations;
4
5 /** @internal */
6 class MorphPivot extends Pivot
7 {
8 /**
9 * The type of the polymorphic relation.
10 *
11 * Explicitly define this so it's not included in saved attributes.
12 *
13 * @var string
14 */
15 protected $morphType;
16 /**
17 * The value of the polymorphic relation.
18 *
19 * Explicitly define this so it's not included in saved attributes.
20 *
21 * @var string
22 */
23 protected $morphClass;
24 /**
25 * Set the keys for a save update query.
26 *
27 * @param \Illuminate\Database\Eloquent\Builder $query
28 * @return \Illuminate\Database\Eloquent\Builder
29 */
30 protected function setKeysForSaveQuery($query)
31 {
32 $query->where($this->morphType, $this->morphClass);
33 return parent::setKeysForSaveQuery($query);
34 }
35 /**
36 * Set the keys for a select query.
37 *
38 * @param \Illuminate\Database\Eloquent\Builder $query
39 * @return \Illuminate\Database\Eloquent\Builder
40 */
41 protected function setKeysForSelectQuery($query)
42 {
43 $query->where($this->morphType, $this->morphClass);
44 return parent::setKeysForSelectQuery($query);
45 }
46 /**
47 * Delete the pivot model record from the database.
48 *
49 * @return int
50 */
51 public function delete()
52 {
53 if (isset($this->attributes[$this->getKeyName()])) {
54 return (int) parent::delete();
55 }
56 if ($this->fireModelEvent('deleting') === \false) {
57 return 0;
58 }
59 $query = $this->getDeleteQuery();
60 $query->where($this->morphType, $this->morphClass);
61 return \IAWPSCOPED\tap($query->delete(), function () {
62 $this->fireModelEvent('deleted', \false);
63 });
64 }
65 /**
66 * Get the morph type for the pivot.
67 *
68 * @return string
69 */
70 public function getMorphType()
71 {
72 return $this->morphType;
73 }
74 /**
75 * Set the morph type for the pivot.
76 *
77 * @param string $morphType
78 * @return $this
79 */
80 public function setMorphType($morphType)
81 {
82 $this->morphType = $morphType;
83 return $this;
84 }
85 /**
86 * Set the morph class for the pivot.
87 *
88 * @param string $morphClass
89 * @return \Illuminate\Database\Eloquent\Relations\MorphPivot
90 */
91 public function setMorphClass($morphClass)
92 {
93 $this->morphClass = $morphClass;
94 return $this;
95 }
96 /**
97 * Get the queueable identity for the entity.
98 *
99 * @return mixed
100 */
101 public function getQueueableId()
102 {
103 if (isset($this->attributes[$this->getKeyName()])) {
104 return $this->getKey();
105 }
106 return \sprintf('%s:%s:%s:%s:%s:%s', $this->foreignKey, $this->getAttribute($this->foreignKey), $this->relatedKey, $this->getAttribute($this->relatedKey), $this->morphType, $this->morphClass);
107 }
108 /**
109 * Get a new query to restore one or more models by their queueable IDs.
110 *
111 * @param array|int $ids
112 * @return \Illuminate\Database\Eloquent\Builder
113 */
114 public function newQueryForRestoration($ids)
115 {
116 if (\is_array($ids)) {
117 return $this->newQueryForCollectionRestoration($ids);
118 }
119 if (!\str_contains($ids, ':')) {
120 return parent::newQueryForRestoration($ids);
121 }
122 $segments = \explode(':', $ids);
123 return $this->newQueryWithoutScopes()->where($segments[0], $segments[1])->where($segments[2], $segments[3])->where($segments[4], $segments[5]);
124 }
125 /**
126 * Get a new query to restore multiple models by their queueable IDs.
127 *
128 * @param array $ids
129 * @return \Illuminate\Database\Eloquent\Builder
130 */
131 protected function newQueryForCollectionRestoration(array $ids)
132 {
133 $ids = \array_values($ids);
134 if (!\str_contains($ids[0], ':')) {
135 return parent::newQueryForRestoration($ids);
136 }
137 $query = $this->newQueryWithoutScopes();
138 foreach ($ids as $id) {
139 $segments = \explode(':', $id);
140 $query->orWhere(function ($query) use($segments) {
141 return $query->where($segments[0], $segments[1])->where($segments[2], $segments[3])->where($segments[4], $segments[5]);
142 });
143 }
144 return $query;
145 }
146 }
147