[HELP] Authentication Register Bermasalah Laravel

Langsung aja gan, saya sedang belajar tentang Authentication di Laravel 5.4. Nah masalahnya setelah saya lakukan perintah 'php artisan make:auth' kan otomatis Laravel ngebuat file-file yang diperlukan. Ketika saya coba ke view register dan mencoba mendaftar saya mendapatkan error, --- Argument 1 passed to Illuminate\Auth\SessionGuard::login() must implement interface Illuminate\Contracts\Auth\Authenticatable, null given --- Tapi data yang diinput tetap masuk ke dalam database di dalam table users. Waktu saya coba login juga berjalan dengan baik. Kendalanya hanya pada saat register saja. Oiya, saya belum pernah mengubah kode apapun terkait file-file dalam authentication, saya hanya membuat CRUD sederhana di dalam instalan project ini. --- Karena saya penasaran, barusan saya coba bikin instalan Laravel yang masih fresh dan melakukan hal yang sama. Hasilnya mulus tidak ada masalah. Saya bandingkan dan teliti kode kedua instalan tersebut dan sepertinya tidak ada yang berbeda. Sudah googling dan main ke stackoverflow tapi masih belum paham. Mohon solusi dari temen-temen ^^ *beneran bingung hehe --- File: HomeController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('home');
    }
}

File: RegisterController.php

<?php

namespace App\Http\Controllers\Auth;

use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;

class RegisterController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Register Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles the registration of new users as well as their
    | validation and creation. By default this controller uses a trait to
    | provide this functionality without requiring any additional code.
    |
    */

    use RegistersUsers;

    /**
     * Where to redirect users after registration.
     *
     * @var string
     */
    protected $redirectTo = '/';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest');
    }

    /**
     * Get a validator for an incoming registration request.
     *
     * @param  array  $data
     * @return \Illuminate\Contracts\Validation\Validator
     */
    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:users',
            'password' => 'required|string|min:6|confirmed',
        ]);
    }

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

avatar Biobii
@Biobii

74 Kontribusi 34 Poin

Diperbarui 6 tahun yang lalu

4 Jawaban:

Itu function create ga ada returnnya, jadi user cuma di create aja tanpa di passing object usernya sendiri.


    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return User ‹--- NOTE: mestinya return user
     */
    protected function create(array $data)
    {
        // disini mestinya return User::create()
        User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
        ]);
    }

avatar rachmatsasongko
@rachmatsasongko

410 Kontribusi 426 Poin

Dipost 6 tahun yang lalu

Oiya gan. Berarti nilai returnnya kayak gimana gan?

avatar Biobii
@Biobii

74 Kontribusi 34 Poin

Dipost 6 tahun yang lalu

bisa seperti ini

    protected function create(array $data)
    {
        $user = User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
        ]);

        return $user;
    }

avatar rachmatsasongko
@rachmatsasongko

410 Kontribusi 426 Poin

Dipost 6 tahun yang lalu

Solved gan. Makasih banyak bantuannya ^^

avatar Biobii
@Biobii

74 Kontribusi 34 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban