I made an add user feature, but if I add the same data there will be a problem, I want to limit the duplicate data, how to create a warning if the same data has been added?
Source Code UserController
JavaScript
x
<?php
namespace AppHttpControllers;
use AppTraitsImageStorage;
use AppUser;
use IlluminateHttpRequest;
use IlluminateSupportFacadesHash;
use YajraDataTablesFacadesDataTables;
class UserController extends Controller
{
public function create()
{
return view('pages.user.create');
}
public function store(Request $request)
{
$validateData = $request->validate([
'name' => 'required|max:255',
'email' => 'required|max:255',
'password' => 'required|max:255',
'is_admin' => 'required',
]);
$photo = $request->file('image');
if ($photo) {
$request['photo'] = $this->uploadImage($photo, $request->name, 'profile');
}
$request['password'] = Hash::make($request->password);
User::create($request->all());
return redirect()->route('user.index');
}
}
Screenshot Error Image
Advertisement
Answer
There are two ways to do it. First is to add ‘unique’ to your validation. For example:
JavaScript
$validateData = $request->validate([
'name' => 'required|max:255|',
'email' => 'required|max:255|unique:users,email',
'password' => 'required|max:255',
'is_admin' => 'required',
]);
or you can manually check if the user already exists by adding an if statement like this:
JavaScript
if (!User::where('email', $request->input('email'))->get()->isEmpty()) {
// user with that email already exists
}
Reference for the first example: Laravel unique validation