質問編集履歴
2
リレーションの命名規則に併せて修正。
test
CHANGED
File without changes
|
test
CHANGED
@@ -194,7 +194,7 @@
|
|
194
194
|
|
195
195
|
}
|
196
196
|
|
197
|
-
public function image() {
|
197
|
+
public function images() {
|
198
198
|
|
199
199
|
return $this->hasMany(Image::class);
|
200
200
|
|
@@ -210,9 +210,9 @@
|
|
210
210
|
|
211
211
|
```php
|
212
212
|
|
213
|
-
$base_list = Base::with(['ref', 'ref.image'])->all();
|
213
|
+
$base_list = Base::with(['ref', 'ref.images'])->all();
|
214
|
-
|
214
|
+
|
215
|
-
// Hogeには
|
215
|
+
// Hogeにはimagesがあるが、Fugaにはimagesのリレーションがないのでエラー
|
216
216
|
|
217
217
|
```
|
218
218
|
|
@@ -238,22 +238,22 @@
|
|
238
238
|
|
239
239
|
}
|
240
240
|
|
241
|
-
public function image() {
|
241
|
+
public function images() {
|
242
242
|
|
243
243
|
return $this->hasMany(Image::class);
|
244
244
|
|
245
245
|
}
|
246
246
|
|
247
|
-
protected $appends = ['image'];
|
247
|
+
protected $appends = ['images'];
|
248
|
-
|
248
|
+
|
249
|
-
public function getImageAttribute($value) {
|
249
|
+
public function getImagesAttribute($value) {
|
250
|
-
|
250
|
+
|
251
|
-
return $this->image; // なぜかここでimageというattributeは無いとエラーになる。
|
251
|
+
return $this->images; // なぜかここでimagesというattributeは無いとエラーになる。
|
252
|
-
|
252
|
+
|
253
|
-
// なお外部から$hoge->imageとアクセスした場合はエラーにならない
|
253
|
+
// なお外部から$hoge->imagesとアクセスした場合はエラーにならない
|
254
|
-
|
254
|
+
|
255
|
-
}
|
255
|
+
}
|
256
|
-
|
256
|
+
|
257
|
-
}
|
257
|
+
}
|
258
|
-
|
258
|
+
|
259
|
-
```
|
259
|
+
```
|
1
試したことの追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -219,3 +219,41 @@
|
|
219
219
|
|
220
220
|
|
221
221
|
当たり前だ、と言われればそれまでなのですが、「あったら取る」「なければnull、またはプロパティ自体が無い」状態のデータが取得したいのです。なんとか方法はないでしょうか。
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
### 試したこと
|
226
|
+
|
227
|
+
- Hogeモデルのappendsにimageを加え、getImageAttributeを実装する
|
228
|
+
|
229
|
+
```php
|
230
|
+
|
231
|
+
class Hoge extends Model
|
232
|
+
|
233
|
+
{
|
234
|
+
|
235
|
+
public function base() {
|
236
|
+
|
237
|
+
return $this->morphMany(Base::class, 'ref');
|
238
|
+
|
239
|
+
}
|
240
|
+
|
241
|
+
public function image() {
|
242
|
+
|
243
|
+
return $this->hasMany(Image::class);
|
244
|
+
|
245
|
+
}
|
246
|
+
|
247
|
+
protected $appends = ['image'];
|
248
|
+
|
249
|
+
public function getImageAttribute($value) {
|
250
|
+
|
251
|
+
return $this->image; // なぜかここでimageというattributeは無いとエラーになる。
|
252
|
+
|
253
|
+
// なお外部から$hoge->imageとアクセスした場合はエラーにならない
|
254
|
+
|
255
|
+
}
|
256
|
+
|
257
|
+
}
|
258
|
+
|
259
|
+
```
|