В БД есть таблица файлов:
Schema::create('files', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->uuid('fileable_id');
$table->string('fileable_type');
$table->timestamps();
});
И самих картинок:
Schema::create('images', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->timestamps();
});
Класс File:
class File extends Model
{
public function fileable()
{
$this->morphTo();
}
Класс Image:
class Image extends Model
{
public function file()
{
return $this->morphOne(File::class, 'fileable');
}
Этот код работает:
$image->file
Но при этом данный код не работает:
$file->fileable
Выдает ошибку:
"message" => "App\Models\File\File::fileable must return a relationship instance."
А
$file->fileable()
выдает null. Но ведь файл можно найти через картинку...
Уже весь мозг себе поломал, какие комбинации только не делал, что только не вставлял в
morphTo();
Где тут кроется ошибка?