จะเขียนข้อความลงในคอลัมน์ฐานข้อมูลเดียวสำหรับผู้ใช้ใหม่ทุกคนระหว่างการลงทะเบียนใน Laravel 5.2 ได้อย่างไร

ฉันใช้ฟีเจอร์ Laravel 5.2 Auth และการลงทะเบียนทำงานได้ดี

ตอนนี้ฉันต้องเขียนสตริงในคอลัมน์พิเศษในตารางผู้ใช้ระหว่างการลงทะเบียน ไม่ใช่ค่าจากการป้อนข้อมูลในรูปแบบ HTML เป็นข้อความคงที่ที่อธิบายบทบาทของผู้ใช้ (ผู้สนับสนุน) ผู้ใช้ทุกคนที่ลงทะเบียนควรได้รับค่า "ผู้สนับสนุน" ในคอลัมน์ user_role ฉันพยายามบรรลุเป้าหมายนี้โดยเพิ่มบรรทัดนี้ใน AuthController.php:

'user_role' => 'contributor',

ฟังก์ชั่นทั้งหมดที่เพิ่มค่าให้กับฐานข้อมูลมีลักษณะดังนี้:

/**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return User
     */
    protected function create(array $data)
    {
        return User::create([
            'first_name' => $data['first_name'],
            'last_name' => $data['last_name'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
            'user_role' => 'contributor',
        ]);
    }

เมื่อฉันพยายามลงทะเบียนบัญชีใหม่ ทุกอย่างยกเว้น 'user_role' => 'contributor', จะถูกเพิ่มเข้ามา
วิธีที่เหมาะสมในการเขียนค่า "ผู้สนับสนุน" สำหรับผู้ใช้ใหม่ทุกคนลงในคอลัมน์ user_role คืออะไร
มันใช้งานไม่ได้หรือเพราะฟังก์ชันนั้นตั้งค่าอาร์เรย์ $data เท่านั้น


person encrypted21    schedule 25.08.2016    source แหล่งที่มา
comment
ปัญหานี้แตกต่างไปจากที่คุณให้ไว้โดยสิ้นเชิง มันมาจากอีกส่วนหนึ่งของ Laravel   -  person encrypted21    schedule 25.08.2016


คำตอบ (1)


คุณเพิ่ม user_role ถึง $fillable array ใน User model หรือไม่

ถ้าไม่คุณจะต้องเพิ่มมัน

ตัวอย่าง

protected $fillable = ['name', 'email', 'password', 'user_role'];
person Dinh Phong    schedule 25.08.2016