Laravel auth необязательное поле? - PullRequest
0 голосов
/ 05 июля 2018

В авторизации Laravel

registercontroller.php

protected function create(array $data) 
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'affiliatetoken' =>Str::random(12),
        'affiliate' => $data ['affiliate'],
    ]);
}   

требует, чтобы

$ data ['affiliate']

определено ... что если я хочу, чтобы это было необязательно, я могу вместо этого отправить ноль? база данных обнуляется, может быть, что-то вроде

, если $data ['affiliate'] определено, создать, но если нет, оставить null или создать 0

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

используйте это

protected function create(array $data) 
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'affiliatetoken' =>Str::random(12),
        'affiliate' => $data ['affiliate'] ?? null, // or 0 "?? operator is equivalent isset()"
    ]);
}  
0 голосов
/ 05 июля 2018

Используйте помощник data_get :

// 3rd argument is what to default to if the key is not set. null by default
'affiliate' => data_get($data, 'affiliate'), 

@ AnkitPatel предложил array_get , который тоже работает. data_get работает как с массивами, так и с объектами.

...