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