Отношения работают в Laravel Tinker, но не в контроллере - PullRequest
0 голосов
/ 28 сентября 2019

Я установил отношения manyToMany и хочу вернуть, что в моем php-коде он не работает, но когда я запускаю тот же код в tinker, он почему-то работает.Чего мне не хватает?!

// Фирма

public function auftraege()
{
  return $this->belongsToMany("Auftrag", 'auftraege_firma');
}

// Auftrag

public function firmen()
{
  return $this->belongsToMany("Firma", 'auftraege_firma');
}

// работает в повозке

$firma = App\Firma::first();
$firma->auftraege

// Не работает в php Controller

$firma = App\Firma::first();
return $firma->auftraege

Получение 500 Ошибка

1 Ответ

0 голосов
/ 28 сентября 2019

Глядя на код вашего контроллера, я могу заметить только две вещи.Измените код своего контроллера следующим образом:

$firma = \App\Firma::first();
return $firma->auftraege;

Вы пропускаете \ перед пространством имен App, а также точка с запятой отсутствует в операторе возврата.

Пожалуйста, также измените отношенияhpsкак это:

public function auftraege()
{
  return $this->belongsToMany(Auftrag::class, 'auftraege_firma');
}

public function firmen()
{
  return $this->belongsToMany(Firma::class, 'auftraege_firma');
}

Причина, по которой он работал с тинкера, заключается в том, что по умолчанию тинкер устанавливает пространство имен на App для текущего сеанса тинкера.Вот почему, хотя вы не указали пространство имен App, тинкер смог проанализировать правильное пространство имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...