fix: 验证邮箱唯一性

This commit is contained in:
JaguarJack 2023-05-16 08:13:20 +08:00
parent 2a6d65d4e7
commit 8088787eee
2 changed files with 50 additions and 5 deletions

View File

@ -6,13 +6,14 @@ use Catch\Base\CatchController as Controller;
use Catch\Support\Module\ModuleRepository;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
use Illuminate\Http\Request;
use Modules\Permissions\Models\Departments;
use Modules\User\Models\LogLogin;
use Modules\User\Models\LogOperate;
use Modules\User\Models\User;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
use Modules\User\Http\Requests\UserRequest;
use Illuminate\Http\Request;
class UserController extends Controller
{
@ -47,10 +48,10 @@ class UserController extends Controller
/**
* store
*
* @param Request $request
* @param UserRequest $request
* @return false|mixed
*/
public function store(Request $request)
public function store(UserRequest $request)
{
return $this->user->storeBy($request->all());
}
@ -80,10 +81,10 @@ class UserController extends Controller
* update
*
* @param $id
* @param Request $request
* @param UserRequest $request
* @return mixed
*/
public function update($id, Request $request)
public function update($id, UserRequest $request)
{
return $this->user->updateBy($id, $request->all());
}

View File

@ -0,0 +1,44 @@
<?php
namespace Modules\User\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
use Modules\Permissions\Models\Roles;
class UserRequest extends FormRequest
{
/**
* rules
*
* @return array
*/
public function rules(): array
{
return [
'email' => [
'required',
Rule::unique('users')->where(function ($query) {
return $query->when($this->get('id'), function ($query){
$query->where('id', '<>', $this->get('id'));
})->where('deleted_at', 0);
})
],
];
}
/**
* messages
*
* @return string[]
*/
public function messages(): array
{
return [
'email.required' => '邮箱必须填写',
'email.unique' => '邮箱已存在',
];
}
}