В моей базе данных есть следующая таблица:
table area_blocks;
id
owner_type
owner_id
created_at
updated_at
в поле owner_type
оно имеет имя Eloquent Model, а owner_id
- это идентификатор этой модели в базе данных.Пример:
db: area_blocks
id | owner_type | owner_id
1 | App\Models\Title | 3
2 | App\Models\Title | 4
3 | App\Models\Textarea | 1
Так что я ожидаю, что когда я получу все это, я также буду стремиться загрузить соответствующее поле из красноречивой модели, хранящейся в owner_type
.
Есть ли красноречивая связьчто может вернуть эту запись из поля owner_type, используя нетерпеливую загрузку?Я пробовал $this->morphTo()
, например,
public function block()
{
return $this->morphTo();
}
, но возвращается как null
.Есть идеи, как это можно сделать?
Пример кода;
<?php
namespace App\Models;
use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Database\Eloquent\Model;
class AreaBlocks extends Model
{
protected $with = ['block'];
public function block()
{
return $this->morphTo();
}
}
Route::get('/', function(){
return App\Models\AreaBlocks::all();
});