问题描述
Laravel 5.8面临非常不确定的问题。使用User :: create();
创建用户时如果我为唯一的电子邮件设置了验证,那么它将返回我错误,即{“ message”:“给定的数据无效。”,“ errors”:{“ email”:[“ 。“]}}否则它将在数据库中为同一电子邮件地址插入4条记录。
这是我的控制人
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Route;
use Auth;
use DB;
use App\User;
use App\Logs;
use App\Role_user;
use App\Model\Admin\Modules_permission;
class UsersController extends Controller
{
protected $slugData;
public function __construct()
{
$this->middleware('auth');
$this->middleware('admin');
$this->slugData = DB::table('modules as m')
->Join('sub_modules as sm','sm.module_id','m.id')
->select('sm.name as superSlug','sm.slug as subSlug')
->where('m.id','=','2')
->where('sm.id','5')
->get()
->toArray();
}
public function adminUsersCreate(Request $request){
$request->validate([
'name' => 'required','branch' => 'required','role' => 'required','status' => 'required','super_module' => 'required','password' => 'required|min:5',//'email' => 'required|email'
'email' => 'required|email|unique:users'
],[
'branch.required' => 'Please select branch.','role.required' => 'Please select role.','status.required' => 'Status is required','super_module.required' => 'Please select super module.','name.required' => 'Name is required','password.required' => 'Password is required'
]);
try {
if(!empty($request->institute)){
$userData['institute_id'] = $request->institute;
if(!empty($request->user_type)){
$userData['institute_user_type_id'] = $request->user_type;
}
}
$userData['type'] = 'user';
$userData['name'] = $request->name;
$userData['email'] = $request->email;
$userData['password'] = bcrypt($request->password);
$userData['password_view'] = $request->password;
$userData['branch_id'] = $request->branch;
$userData['status'] = $request->status;
$userData['created_by'] = Auth::user()->id;
// echo "<pre>";print_r($userData);echo "</pre>";die;
$user = User::create($userData);
if(@$user->id >0){
$message['type'] = 'POST';
$message['success'] = 'User create successfully+++';
$roleData['user_id'] = $user->id;
$roleData['role_id'] = $request->role;
$role = Role_user::create($roleData);
if($role->id != 0 && !empty($role)){
if($request->super_module != 'not_that_time' && !empty($request->permission)){
$permUser = $user->id;
$permissions = $request->permission;
foreach ($permissions as $key => $subModule) {
$permData['user_id'] = $permUser;
$permData['created_by'] = Auth::user()->id;
$permData['module_id'] = $key;
foreach ($subModule as $key => $cruds){
$permData['submodule_id'] = $key;
$permID = Modules_permission::create($permData);
$permUpdateID = Modules_permission::whereId($permID->id)->update($cruds);
if($permUpdateID == 0 || empty($permID) || $permID->id == 0){
$routeName = Route::getCurrentRoute();
$message['type'] = 'POST';
$message['user_id'] = Auth::user()->id;
$message['opretion'] = 'Login User Create';
$message['error_message'] = 'Permission update failed afetr create user';
$message['url'] = $routeName->action['controller'];
Logs::create($message);
}elseif($permUpdateID == 1){
$message['type'] = 'POST';
$message['success'] = 'User create successfully';
}
}
}
}else{
$message['type'] = 'POST';
$message['success'] = 'User create successfully without permissions';
}
}else{
$routeName = Route::getCurrentRoute();
$message['type'] = 'POST';
$message['user_id'] = Auth::user()->id;
$message['opretion'] = 'Login User Create';
$message['error_message'] = 'Role ID not get afetr create user';
$message['url'] = $routeName->action['controller'];
Logs::create($message);
}
}else{
$routeName = Route::getCurrentRoute();
$message['type'] = 'POST';
$message['user_id'] = Auth::user()->id;
$message['opretion'] = 'Login User Create';
$message['error_message'] = 'User create failed';
$message['url'] = $routeName->action['controller'];
Logs::create($message);
}
return Response()->json($message);
} catch (\Exception $ex) {
$routeName = Route::getCurrentRoute();
$message['type'] = 'POST';
$message['user_id'] = Auth::user()->id;
$message['opretion'] = 'Login User Create';
$message['error_message'] = $ex->getMessage();
$message['url'] = $routeName->action['controller'];
Logs::create($message);
return Response()->json($message);
}
}
}
用户模型和关系:-
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'type','name','gender','institute_id','institute_user_type_id','password_view','land_line','permanent_address','mobile','dob','corresp_address','pin_code','photo','email','password','branch_id','status','created_by'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password','remember_token',];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',];
public function roles()
{
return $this->belongsToMany(Role::class);
}
public function rolesByID()
{
return $this->belongsToMany('App\Role','role_user','user_id','role_id');
}
}
JS用来提交表单:-
$(function() {
$('.add-subadmin-form').validate({
errorElement: 'span',errorClass: 'error',rules: {
name: "required",email: {
required: true,email: true,// remote: checkEmail()
},password: {
required: true,pwcheck: true,minlength: 5
},},// Specify validation error messages
messages: {
name: "Please enter your name.",password: {
required: "Please provide a password.",pwcheck: "minimum 1 capital letters and lowercase letters with number and special characters",minlength: "Your password must be at least 5 characters long."
},email: "Please enter a valid email address.",branch:{
required: "Please select branch.",super_module:{
required: "Please select super module.",sub_moduless:{
required: "Please select sub module.",role:{
required: "Please select role.",submitHandler: function(form) {
if(returnData == 0){
$('span.emailExist').text('This email is already exist');
$("span.emailExist").css("display","block");
return false;
}else {
$('span.emailExist').remove();
var postedData = $('.add-subadmin-form').serialize();
$.ajax({
url: SITE_URL+'/admin/admin-users-Create',method:"POST",headers: {
'X-CSRF-TOKEN': $('input[name="_token"]').val()
},data: $('.add-subadmin-form').serialize(),success:function(response){
console.log(response);
if(response.success){
notify({
type: "success",//alert | success | error | warning | info
title: "Success! "+response.success,showHideTransition: 'fade',position: {
x: "right",//right | left | center
y: "top" //top | bottom | center
},icon: '<img src="'+Asses_url+'/public/assets/images/paper_plane.png" />',// message: response.success
});
window.setTimeout(function(){
window.location.href = SITE_URL+"/admin/admin-users-list";
},2000);
}else if(response.error_message){
ntotify({
type: "error",//alert | success | error | warning | info
title: "Error",message: response.error_message
});
}
}
});
// form.submit();
}
}
});
});
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)