Данные отношений Laravel и jenssegers mongodb не сохраняются - PullRequest
0 голосов
/ 14 марта 2019

У меня есть 2 класса в Laravel

class Company
{
  public function people()
  {
     return $this->hasMany('Person');
  }
}

class Person 
{
  public function company()
  {
    return $this->belongsTo('Company');
  }
}

Теперь в другом классе я создаю объект person и задаю company_id с определенной переменной $companyId.

$person = new Person;
$person->company_id = $companyId; //Code not executing after it.
$person->save();

Когда я устанавливаю $ companyId в $ person, это просто рекурсивный вызов и никогда не возвращаюсь.

Я тоже пробовал этот код, но не повезло, опять же, он где-то застрял и никогда не сохраняет.

$company = Company::find($companyId);
$person = new Person;
$company->people()->save($person); // Never execute this

Пожалуйста, предоставьте некоторое представление, что я делаю неправильно, я погуглил на это, но не нашел, что разрешило это.

  • РЕДАКТИРОВАТЬ *

Это приложение было создано и поддерживается в laravel 4.2, и там оно работает нормально, но при обновлении до laravel 5.7 здесь возникает проблема.

Спасибо

1 Ответ

1 голос
/ 20 марта 2019

можете попробовать приведенный ниже код, возможно, он будет работать для вас.

Пожалуйста, добавьте подобное отношение в ваш код.

class Company
{
  public function people()
  {
     return $this->hasMany('App\Person');
  }
}

class Person 
{
  public function company()
  {
    return $this->belongsTo('App\Company');
  }
}

И попробуйте сохранить объект Person вот такЯ не знаю полей таблицы персонала, поэтому для демонстрации я использовал имя, поэтому замените его в соответствии с вашими требованиями.

$comment = new App\Person(['name' => 'test']);

$company= App\Company::find(1);

$company->people()->save($person);
...