Bagaimana cara menulis teks ke dalam satu kolom database untuk setiap pengguna baru saat registrasi di Laravel 5.2?

Saya menggunakan fitur Laravel 5.2 Auth dan registrasi berfungsi dengan baik.

Sekarang saya perlu menulis string di kolom khusus di tabel pengguna saat registrasi. Ini bukan nilai dari input formulir HTML. Ini adalah teks statis yang menjelaskan peran pengguna (kontributor). Semua pengguna yang mendaftar harus menerima nilai "kontributor" di kolom peran_pengguna. Saya mencoba mencapainya dengan menambahkan baris ini ke AuthController.php:

'user_role' => 'contributor',

Seluruh fungsi menambahkan nilai ke database terlihat seperti ini:

/**
     * 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',
        ]);
    }

Saat saya mencoba mendaftarkan akun baru, semuanya kecuali 'user_role' => 'contributor', ditambahkan.
Apa cara yang tepat untuk menulis nilai "kontributor" untuk setiap pengguna baru ke dalam kolom user_role?
Apakah ini tidak berfungsi karena fungsi tersebut hanya memiliki kumpulan array $data?


person encrypted21    schedule 25.08.2016    source sumber
comment
Kemungkinan duplikat Cara menyetel default nilai atribut untuk model Laravel/Eloquent?   -  person aynber    schedule 25.08.2016
comment
Masalah ini sangat berbeda dengan masalah yang Anda berikan. Itu dari bagian lain Laravel.   -  person encrypted21    schedule 25.08.2016


Jawaban (1)


Apakah Anda menambahkan array user_role ke $fillable pada model Pengguna?

Jika tidak, Anda perlu menambahkannya

Contoh

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