Laravel orm с () не работает - PullRequest
       28

Laravel orm с () не работает

0 голосов
/ 27 февраля 2020

JoinSkipReason не имеет идентификатора, но первичный ключ JoinReview является внешним ключом JoinSkipReason.

Query Builder работает хорошо ...

Я хочу использовать с (), чтобы присоединить JoinSkipReason к Таблица JoinReview.

Спасибо.

JoinReview::with(
    'join_skip_reason'
);
class JoinReview extends Model
{
    public function joinSkipReason()
    {
        return $this->hasOne('App\Models\Service\JoinSkipReason');
    }
}
class JoinSkipReason extends Model
{
    protected $fillable = ['join_review_id', 'reason'];

    public function joinReview()
    {
        return $this->belongsTo('App\Models\Service\JoinReview', 'id');
    }
}

Ответы [ 2 ]

1 голос
/ 27 февраля 2020

Я сам сталкивался с этой проблемой, проблема в том, что для быстрой загрузки многословных отношений вы должны использовать camelCase.

В вашем коде:

JoinReview::with(
  'joinSkipReason'
);

Я также обнаружил (довольно старый) вопрос о том, что вы также должны получить доступ к загруженному отношению как camelCase, иначе он проигнорирует кэшированный результат и снова запросит базу данных.

0 голосов
/ 27 февраля 2020

Проверьте, как это сделать

public function joinSkipReason()
{
    return $this->hasOne('App\Models\Service\JoinSkipReason','join_review_id','id');
}
...