Красноречивые отношения не работают на производстве - PullRequest
0 голосов
/ 22 декабря 2018

Поэтому я пишу код, где пользователи могут приглашать людей зарегистрироваться, используя их реферальный код.пользователь должен иметь возможность определять приглашенных им людей, используя отношение $ user-> Invitees ().Это прекрасно работает в местном масштабе.Но на производстве это не так.

public function invitees()
{
    return $this->hasMany('App\User', 'referrer', 'referral_code');
}

Я узнал, что это связано с тем, что в некоторых случаях отношение может возвращать нуль:

поле реферера и referral_code могут быть нулевыми (в некоторых ситуациях, например, когда пользователь зарегистрирован напрямую безбудучи приглашенным кем-то), что приводит к тому, что отношение invitees() возвращает null

Я где-то читал, что это может быть причиной.

это правда?и если да, как я могу справиться с этим?

1 Ответ

0 голосов
/ 23 декабря 2018

В этом случае, возможно, вам нужно использовать $ user-> Invitees - без () - потому что функция возвращает отношения.

И, возможно, у вас возникнет ситуация, когда у пользователя не будет приглашений, поэтому вам нужно будет подтвердить это с помощью

if($user->invitees->count()) {}

, если число> 0, это будет истина.

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

...