laravel-5.4 - error :Membuat objek default dari nilai kosong

Saya ingin menyimpan jalur gambar dalam database. Kode Controller saya di bawah vendor\laravel\framework\src\Illuminate\Foundation\Auth\RegistersUsers.php berikut:

public function register(Request $request)
{
    $this->validator($request->all())->validate();

    if($request->hasFile('image')) {
    $image_name = $request->file('image')->getClientOriginalName();              
    $image_path = $request->file('image')->store('public'); 
    $user->image = Storage::url($image_name);
    $user->save();
    }

    event(new Registered($user = $this->create($request->all())));

   // $this->guard()->login($user); disable autologin for new users

    return $this->registered($request, $user)
                    ?: redirect($this->redirectPath());
}

Saya mendapatkan kesalahan berikut: ErrorException di RegistersUsers.php baris 40: Membuat objek default dari nilai kosong .

Gambar disimpan di folder publik tetapi tidak dapat menyimpan jalur gambar di database tabel pengguna. skema tabel pengguna Schema::create('users', function (Blueprint $table) { $table->increments('user_id'); $table->string('nama'); $table->string('image'); $table->rememberToken(); $table->timestamps();

bagaimana cara melanjutkan untuk menyimpan jalur gambar dalam tabel pengguna di database

Anda belum menginisialisasi variabel $user jadi di controller dan sebelum menggunakannya Anda harus menambahkan $user = new User; dengan asumsi bahwa Anda sudah memiliki use App\User;

atau $user = new \App\User; jika belum.

Update jika Anda mencoba memperbarui catatan pengguna yang sudah ada, Anda harus menginisialisasi variabel $user dengan memilih berdasarkan kunci utama yang harus dikirim dalam permintaan dan kemudian melakukan inisialisasi seperti:

$user_id = $request->input('user_id');
$user = User::find($user_id);
Komentar (4)

Gunakan cara sederhana di bawah ini:

$user = User::where('id', '=', $id)->first(); // where id is method param from url or request object
$user->save();

Ini juga lebih mudah ketika memperbarui beberapa tabel di mana id dalam sub-tabel memiliki kunci asing dan perlu didefinisikan secara eksplisit dalam proses pembaruan.

Juga $user = User::find($id); biasanya bekerja di mana $id adalah kunci utama dari tabel objek tersebut

Komentar (0)