laravel проверить, создал ли пользователь профиль

Например:

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

У laravel есть вспомогательные функции для этого или вам нужно сделать что-то подобное?

 if(\Auth::check())

    {

        $user_id = \Auth::user()->id;
        $profile = Profile::where('id', $profile->id)->where('user_id', $user_id)->first();
        if($profile->count() > 0 ) {

            return false;

        } else {

            return true;

        }
    }

person InterstingJavaLearner    schedule 21.11.2018    source источник


Ответы (1)


Предполагая, что вы хотите, чтобы Profiletable содержала информацию из User, не объединяя их вместе, вам нужно:

  1. Запустите в корневой папке проекта:

    php artisan make:migration:schema create_profiles_table --schema="user_id:integer:foreign, title:string"

  2. Создайте отношение:

Модель пользователя

public function profiles()
{
    return $this->hasOne('App\Profile', 'id', 'user_id');
}

Модель профиля

public function users()
{
    return $this->belongsTo('App\User', 'user_id', 'id');
}
  1. Проверьте, есть ли у пользователя профиль:

В вашем контроллере

if (is_null(Auth::user()->profiles)) {
    //your logic here
}
person Diogo Santo    schedule 22.11.2018