Почему Laravel не распознает отношения? Вызов неопределенного метода Illuminate \ Database \ Query \ Builder :: model () - PullRequest
0 голосов
/ 02 апреля 2020

Это один из тех случаев "я ничего не изменил, и он перестал работать". Месяц go моя развернутая версия проекта на сервере работала нормально, сегодня я выдвинул некоторые изменения, которые не имели ничего общего с модельными отношениями, и внезапно начал выдавать мне эту ошибку.

Call to undefined method Illuminate\Database\Query\Builder::websites()

Часть скрипта, которая выдает эту ошибку

if(!empty($websites))
      {
        $filePdf->websites()->attach($websites);
      }

$ filePdf имеет тип App \ File, я проверил это с помощью get_class ()

Вот определенные отношения App \ File. php

public function websites()
{
  return $this->belongsToMany('App\website', 'file_websites', 'file_id', 'website_id');
}

Приложение \ веб-сайт. php

public function files()
{
  return $this->belongsToMany('App\File', 'file_websites', 'website_id', 'file_id');
}

Структура таблицы файловых сайтов

Schema::create('file_websites', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->unsignedBigInteger('file_id');
        $table->unsignedBigInteger('website_id');

        $table->foreign('file_id')->references('id')->on('files');
        $table->foreign('website_id')->references('id')->on('websites');
        $table->timestamps();
    });

На моей локальной машине все работает нормально , без ошибок, но как только я разверну его, это начинает происходить. Любая помощь будет принята с благодарностью.

Редактировать: Вот как объявляется $ filePdf

$filePdf= new File();
$filePdf->filename = $name;
$filePdf->language_id = $request->input('fileLanguage');
$filePdf->save();

1 Ответ

0 голосов
/ 02 апреля 2020

попробуйте изменить «приложение \ сайт» на «приложение \ сайт»

public function websites()
{
  return $this->belongsToMany('App\Website', 'file_websites', 'file_id', 'website_id');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...