302 found in Laravel project

Viewed 37

Route

Route::get('/addproduct', [UserController::class, 'addproduct'])->name('addproduct');
Route::post('/addnewproduct', [UserController::class, 'addnewproduct'])->name('addnewproduct');
Route::get('/showproducts', [UserController::class, 'showproducts'])->name('showproducts');

Controller

public function addproduct()
{
    return view('addProduct');
}

public function addnewproduct(Request $request)
{
    $user_id = Auth::user()->id;
    $request->validate([
        'file' => 'required|mimes:jpg,png,gif,svg',
        'name' => 'required|string|min:3|max:30',
        'description' => 'required|string|min:1|max:255',
        'category' => 'required|string|max:255',
    ]);
    $productModel = new Product();
    $filename =time().'_' .$request->name;
    $filePath = $request->file('file')->move('upload', $filename);
    $productModel->name = $request->name;
    $productModel->description = $request->description;
    $productModel->category = $request->category;
    $productModel->image = $filePath;
    $productModel->save();

    return redirect()->route('showproducts');
}

public function showproducts()
{
    $user_id = Auth::user()->id;
    $results=DB::select('SELECT * FROM products');
    $data = [
        'results' =>$results
    ];

    return view('showProduct')->with($data);
}

View

<div class="card-body">
                <form method="POST" action="{{ route('addnewproduct') }}" class="needs-validation form" enctype="multipart/form-data" novalidate>
                    @csrf
                    <div class="row">
                        <div class="col-sm-6">
                            <input type="file" id="input-file-now" class="form-control dropify" name="file" required/>
                        </div>
                        <div class="col-sm-6">
                            <div class="row mb-3">
                                <label for="validationName" class="form-label">Product name</label>
                                <div class="input-group has-validation">
                                    <input type="text" class="form-control" name="name" id="validationName" aria-describedby="inputGroupPrepend" required>
                                    <div class="invalid-feedback">
                                        You have to enter Product name!
                                    </div>
                                </div>
                            </div>
                            <div class="row mb-3">
                                <label for="validationCategory" class="form-label">Category</label>
                                <div class="input-group has-validation">
                                    <select class="form-select" name="category" id="validationCategory" required>
                                        <option selected disabled value="">Select...</option>
                                        <option value="c1">c1</option>
                                        <option value="c2">c2</option>
                                    </select>
                                </div>
                                <div class="invalid-feedback">
                                Please select Category
                                </div>
                            </div>
                            <div class="row mb-3">
                                <label for="validationDes" class="form-label">Description</label>
                                <div class="input-group has-validation">
                                    <textarea type="text" class="form-control text-des" name="address" id="validationDes" aria-describedby="inputGroupPrepend" required></textarea>
                                    <div class="invalid-feedback">
                                        Please enter product descriiption in here.
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-check">
                            <input class="form-check-input" type="checkbox" value="" id="invalidCheck" required>
                            <label class="form-check-label" for="invalidCheck">
                                Check it.
                            </label>
                            <div class="invalid-feedback">
                                You have to checkbox!
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="float-end">
                            <button class="btn btn-primary sumbtn float-end" type="submit"><i class="bi bi-person-plus-fill"></i> ADD</button>
                        </div>
                    </div>
                </form>
            </div>

after enter all fields and file select and then click checkbox, but when I click button don't go to showproducts page, and don't save enterd data and file.

view screenshot

after click button get 302 and not redirect to "showproducts"

Please help me, I'm very very stress with that problem

0 Answers
Related