@Artem0071
Безработный mr. Junior

Почему не работает morphTo?

В БД есть таблица файлов:
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();

Где тут кроется ошибка?
  • Вопрос задан
  • 223 просмотра
Решения вопроса 1
JhaoDa
@JhaoDa
LaravelRUS Team
Рекомендую поспать, потому что у тебя уже return'ы теряются в коде...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы