2017-02-16 3 views
0

Я обновил свой laravel 5.0 до 5.3. После этого ORM-соединения не работают вообще. Есть ли какие-либо предложения, почему он не работает? Я последовал за все insructions образуют HereORM не работает после обновления Laravel App до 5.3

Но, похоже, я что-то пропустил из-за которой присоединяется не работает, включается код правильно и работает предварительное обновление. Код:

public function CompanyDataGet() 
{ 
    return $this->belongsTo('App\Model','id','othertable_id'); 
} 

ответ

1

belongsTo означает обратную отношения.

Что говорит API Laravel?

Наиболее распространенным способом является проверка API из Laravel 5.3 (https://laravel.com/api/5.3/Illuminate/Database/Eloquent/Model.html#method_belongsTo):

BelongsTo belongsTo(string $related, string $foreignKey = null, string $otherKey = null, string $relation = null) 

Решение

По умолчанию $related требуется только:

public function CompanyDataGet() 
{ 
    return $this->belongsTo('App\Model'); 
} 

Если вы все еще хотят передать имена ключей (например, если вы используете имена, отличные от значений по умолчанию):

  • второй аргумент должен быть внешний ключ!
  • третий аргумент должен быть местный ключ!

Ваш код должен быть:

public function CompanyDataGet() 
{ 
    return $this->belongsTo('App\Model', 'othertable_id', 'id'); 
} 
+0

Благодарим Вас за входы @schellingerht. Проблема в том, что все, о чем вы говорили, работало до обновления до laravel 5.3. Внезапно он прекратил работу после обновления. Я прочитал все, что вы упомянули в официальных документах. Мне нужен тот, кто раньше повысил Laravel и столкнулся с такой проблемой. –

+1

Хорошо, я это «кто-то» ;-). Но важно, чтобы ваш код был правильным, независимо от вашего первого кода. Сравнивая документацию, вы должны повернуть ключевые параметры. – schellingerht