Cannot add data for second time but work for firs time, laravel add user

Viewed 24

I'm trying to create a form to insert a user but the function doesn't work the second time, only the first. I got *rror after submitting it a second time.

302 found

UserController

class UserController extends Controller
{
    // User
    public function edit()
    {
        return view(
            'pages.user.edit',
            [
                'user' => Auth::user(),
                'title' => ''
            ]
        );
    }
    public function create()
    {
        return view('pages.user.createUS', [
            'levels' => Level::get(),
            'perusahaans' => Perusahaan::get(),
            'satkers' => Satker::get(),
        ]);
    }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return \App\Models\User
     */
    public function store(Request $request)
    {
        // dd($validatedData);

        $this->validate(request(), [
            'name' => 'required',
            'level_id' => 'required',
            'satker_id' => 'required',
            'username' => ['required', 'string', 'max:255', 'unique:users'],
            'phonenumber' => ['required', 'unique:users'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        ]);
        $errors = $this->errors();
        if ($this->fails()) {

            return redirect('users/create')->withErrors($errors)->withInput()->with('err', true);
        }
        // dd($validatedData, $request);
        $user = new User([
            'name'  => request('name'),
            'username' => request('username'),
            'email' => request('email'),
            'phonenumber' => request('phonenumber'),
            'level_id' => request('level_id'),
            'satker_id' => request('satker_id'),
            'remember_token' => Str::random(10)
        ]);
        $user->password = md5(request('password'));
        $user->save();

        return redirect()->route('users.create')->with('success', 'User Berhasil Dibuat!');
    }
    /**
     * Indicate that the model's email address should be unverified.
     *
     * @return static
     */
    public function unverified()
    {
        return $this->state(function (array $attributes) {
            return [
                'email_verified_at' => null,
            ];
        });
    }

    public function index()
    {
        $users = User::latest()->get();
        $perusahaans = Perusahaan::get();
        $satkers = Satker::latest()->get();

        return view(
            'pages.user.index',
            [
                'users' => $users,
                'perusahaans' => $perusahaans,
                'satkers' => $satkers,
                'levels' => Level::get()
            ]
        );
    }

    public function action(Request $request)
    {
        $pid = $request->post('pid');
        $satkers = Satker::where('perusahaan_id', $pid)->latest()->get();
        $html = '<option value="">Pilih Satuan Kerja</option>';
        foreach ($satkers as $satker) {
            $html .= '<option value="' . $satker->id . '">' . $satker->satker . '</option>';
        }
        echo $html;

        // return response()->json(['html' => $html]);
    }

    // Setting Profile
    public function show(User $user)
    {
        $details = DetailTransaksi::get();
        $transaksis = Transaksi::latest()->get();
        $tagihans = Tagihan::latest()->get();
        $satkers = Satker::latest()->get();
        // dd($tagihans->where('user_id', $user->id));
        return view('pages.user.detail', [
            'user' => $user,
            'transaksis' => $transaksis,
            'details' => $details,
            'tagihans' => $tagihans,
        ]);
    }


    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\User  $user
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request)
    {
        $user = Auth::user();
        // $file_name = $request->image->getClientOriginalName();

        $rules = [
            'name' => 'required',
            'username' => 'required',
            'satker_id' => 'required',
            'email' => 'required',
            'phonenumber' => 'required',
            'level_id' => 'required',
        ];

        if (
            $request->email != $user->email
        ) {
            $rules['email'] = 'required|unique:users';
        }

        $validatedData = $request->validate($rules);
        $validatedData['id'] = auth()->user()->id;

        User::where('id', $user->id)
            ->update($validatedData);

        return redirect('/user')->with('success', 'Profile has been Updated');
    }
}

Blade

<section id="produk-form-create" class="">
    <h4 class="fw-bold py-3 mb-4">
        <span class="text-muted fw-light">User /</span> Tambah Data User
    </h4>
    <div class="col-xxl">
        <div class="card mb-4">
            <div class="card-header d-flex align-items-center justify-content-between">
                <h5 class="mb-0">Form Tambah Produk</h5>
            </div>
            <div class="card-body">
                <form action="/users/store" method="POST" enctype="multipart/form-data">
                    @csrf
                    <div class="row">

                        <div class="col-md-6 mb-3 text-start">
                            <label for="name" class="form-label">Nama User</label>
                            <input id="name" type="name" name="name" value="{{ old('name') }}"
                                   class="form-control @error('name') is-invalid @enderror" required>
                            @error('name')
                            <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                            @enderror
                        </div>
                        <div class="col-md-6 mb-3 text-start">
                            <label for="username" class="form-label">Username</label>
                            <input id="username" type="text" name="username" value="{{ old('username') }}"
                                   class="form-control @error('username') is-invalid @enderror" required>
                            @error('username')
                            <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                            @enderror
                        </div>
                        <div class="col-md-6 mb-3 text-start">
                            <label for="email" class="form-label">Email</label>
                            <input id="email" name="email" value="{{ old('email') }}" type="text"
                                   class="form-control @error('email') is-invalid @enderror" required>
                            @error('email')
                            <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                            @enderror
                        </div>
                        <div class="col-md-6 mb-3 text-start">
                            <label for="leveluser" class="form-label">Level User</label>
                            <select class="form-select @error('leveluser') is-invalid @enderror" id="leveluser"
                                    name="level_id" required>
                                @foreach ($levels as $level)
                                    <option value="{{ $level->id }}">{{ $level->level }}</option>
                                @endforeach
                            </select>
                            @error('level_id')
                            <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                            @enderror
                        </div>
                        <div class="col-md-6 mb-3 text-start">
                            <label class="form-label" for="phonenumber">Phone Number</label>
                            <div class="input-group input-group-merge">
                                <span class="input-group-text">ID (+62)</span>
                                <input type="text" id="phonenumber" name="phonenumber" class="form-control"
                                       placeholder="" value="{{ old('phonenumber') }}" required>
                                @error('phonenumber')
                                <span class="invalid-feedback" role="alert">
                                            <strong>{{ $message }}</strong>
                                        </span>
                                @enderror
                            </div>
                        </div>
                        <div class="col-md-6 mb-3 text-start">
                            <label for="perusahaan" class="form-label">Perusahaan</label>
                            <select class="form-select @error('perusahaan_id') is-invalid @enderror" id="perusahaan_id"
                                    name="perusahaan_id" required>
                                @foreach ($perusahaans as $perusahaan)
                                    <option value="{{ $perusahaan->id }}">{{ $perusahaan->nama_perusahaan }}
                                    </option>
                                @endforeach
                            </select>
                        </div>

                        <input type="hidden" name="password" id="password" value="12345678">
                        <div class="col-md-6 mb-3 text-start">
                            <label for="password" class="form-label">Password</label>
                            <p>Password default untuk user adalah
                                <mark><strong
                                            class="text-warning">"12345678"</strong></mark>
                                mohon arahkan kepada
                                user untuk mengganti password demi keamanan dan kenyamanan bersama.
                            </p>
                        </div>

                        <div class="col-md-6 mb-3 text-start">
                            <label for="satker_id" class="form-label">Satuan Kerja</label>
                            <select id="satker_id" name="satker_id"
                                    class="form-select @error('satker') is-invalid @enderror" required>
                                @foreach ($satkers->where('perusahaan_id', 1) as $satker)
                                    <option value="{{ $satker->id }}">
                                        {{ $satker->satker }}
                                    </option>
                                @endforeach
                            </select>
                            @error('satker_id')
                            <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                            @enderror
                        </div>

                    </div>

                    <div class="row">
                        <div class="col-sm-4 ">
                            <button type="submit" class="btn btn-primary"><i class="fw-icons bx bx-send"></i>
                                &nbsp; Send
                            </button>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
</section>

Routes

Route::get('users', [UserController::class, 'index'])->name('users')->middleware('userlevel');
Route::get('users/{user}/edit', [UserController::class, 'edit'])->name('users.edit')->middleware('userlevel');
Route::get('users/create', [UserController::class, 'create'])->name('users.create')->middleware('userlevel');
Route::post('/users/store', [UserController::class, 'store'])->name('users.store')->middleware('userlevel');
Route::delete('users/{user}/destroy', [UserController::class, 'destroy'])->name('users.destroy')->middleware('userlevel');
Route::put('users/{user}/update', [UserController::class, 'update'])->name('users.destroy')->middleware('userlevel');
Route::post('users/action', [UserController::class, 'action']);

Success in the first-time post but get 302 found in the second time. Please help me to solve this problem.

0 Answers
Related