Laravel firstOrCreate не объединяет поисковую запись - PullRequest
0 голосов
/ 09 марта 2020

Есть много других вопросов, связанных с этим, когда люди неправильно его использовали, но я уверен, что у меня есть правильный синтаксис, и он просто опускает поисковый термин к тому моменту, когда он превращается в sql.

Я сделал 2 итерации. Один, где я снова добавляю 'sub', а другой, где я не

   protected function upsertUser( $profile ) {  
        $sub  = $profile['sub'];
        $email = $profile['email'];
        $name = $profile['name'];
        Log::stack(['single'])->critical(compact("sub", "email", "name"));
        return User::firstOrCreate(compact("sub"), ['sub' => $profile['sub'], 'email' => $profile['email'] ?? '', 'name' => $profile['name'] ?? '']);
    }
   protected function upsertUser( $profile ) {  
        $sub  = $profile['sub'];
        $email = $profile['email'];
        $name = $profile['name'];
        Log::stack(['single'])->critical(compact("sub", "email", "name"));
        return User::firstOrCreate(compact("sub"), ['email' => $profile['email'] ?? '', 'name' => $profile['name'] ?? '']);
    }

В обоих случаях sub просто не попадает в создание, которое завершается неудачно с: сообщением показывая, что он даже не пытается вставить 'sub'

Регистрация массива показывает, что он содержит нужные данные.

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

    protected $fillable = [
        'name',
        'email',
        'sub',
    ];

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

1 Ответ

0 голосов
/ 10 марта 2020

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

Приложение / модели / пользователи! = Приложение / пользователь

Мне пришлось сделать вспомогательный файл для этой "модели", это даже не традиционная модель, она расширяет Auth \ User

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...