В моем проекте laravel у меня есть несколько таблиц, которые содержат идентификатор электронной почты (пример: таблица пользователей и таблица агентств), и я использую валидатор JS для проверки формы. Проблема заключается в том, что, когда я пытаюсь заполнить форму агентств, данные, если я использую почтовый идентификатор, которого нет в таблице агентств, но уже есть в таблице пользователей, вызывает ошибку email is already taken
. Но этот идентификатор электронной почты присутствует только в таблице пользователей, а не в таблице агентства.
Ниже приведены мои коды для проверки и хранения () в контроллере агентства
protected $addValidationRules = [
'name' => 'required|max:255',
'username' =>'required|max:255',
'password' => 'required|min:6',
'city' => 'required|max:255',
'state' => 'required|max:255',
'zip_code' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
];
Ниже приведен мой код для хранения данные в таблице агентства
public function store(Request $request)
{
$postdata = $request->all();
// echo "<pre>";print_r($postdata);exit;
$validation = Validator::make($request->all(), $this->addValidationRules);
if ($validation->fails()) {
return redirect()->back()->withErrors($validation->errors())->withInput();
}else{
$name = isset($postdata['name']) ? $postdata['name'] : '';
$username = isset($postdata['username']) ? $postdata['username'] : '';
$password = isset($postdata['password']) ? $postdata['password'] : '';
$city = isset($postdata['city']) ? $postdata['city'] : '';
$state = isset($postdata['state']) ? $postdata['state'] : '';
$zip = isset($postdata['zip_code']) ? $postdata['zip_code'] : '';
$email = isset($postdata['email']) ? $postdata['email'] : '';
$created_at = Carbon::now();
try {
$agency = Agencie::create([
'agency_name' => $name,
'agency_user_name' => $username,
// 'payment_type' => $payment_type,
'password' => bcrypt($password),
'agency_city' => $city,
'agency_state' => $state,
'agency_zip' => $zip,
'email' => $email,
'agency_status' => 'ACTIVE',
'created_at' => $created_at
]);
// $agency->notify(new AgencyRegisteredNotification($agency));
}catch (\Exception $e){
return $e->getMessage();
}
if($agency != ''){
Session::flash('message', 'Agency added Successfully');
Session::flash('msgclass', 'alert-success');
return Redirect::to('admin/agencies');
}else{
Session::flash('message', 'Error while adding Agency');
Session::flash('msgclass', 'alert-danger');
return Redirect::to('admin/agencies');
}
}
}
Но, пожалуйста, не то, чтобы я хотел взять данные из модели пользователя также на этой странице, поэтому я также использовал UserModel, следующий код:
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Agencie;
use App\User;
use DB;
use JsValidator;
use Validator;
use Illuminate\Support\Str;
use Session;
use Redirect;
use Carbon\Carbon;
use App\Libraries\GlobalHelpers;
use App\Libraries\ImageHelpers;
use Auth;
use Response;
use App\Notifications\AgencyRegisteredNotification;
Если в чем проблема, как я могу это проверить?