����JFIF��x�x����'
Server IP : 78.140.185.180 / Your IP : 18.220.98.157 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/public_html/common/Validation/Validators/ |
Upload File : |
<?php namespace Common\Validation\Validators; use App\User; use Illuminate\Contracts\Validation\Rule; use Illuminate\Validation\Concerns\ValidatesAttributes; class EmailsAreValid implements Rule { use ValidatesAttributes; /** * @var int */ private $maxEmails = 5; /** * @var bool */ private $validateExistence; /** * @var string */ private $validationMessage; public function __construct($validateExistence = true) { $this->validateExistence = $validateExistence; } /** * @inheritDoc */ public function passes($attribute, $emails) { $invalidEmails = array_filter($emails, function($email) use($attribute) { return !$this->validateEmail($attribute, $email, []); }); if ( ! empty($invalidEmails)) { $this->validationMessage = $this->invalidEmailsMessage($invalidEmails); return false; } if ($this->validateExistence) { $dbEmails = app(User::class)->whereIn('email', $emails)->pluck('email'); $nonExistentEmails = array_filter($emails, function($email) use($dbEmails) { return !$dbEmails->contains($email); }); if ( ! empty($nonExistentEmails)) { $this->validationMessage = $this->emailsDontExistMessage($nonExistentEmails); return false; } } return true; } private function invalidEmailsMessage(array $emails): string { $emailString = implode(', ', array_slice($emails, 0, $this->maxEmails)); if (count($emails) > $this->maxEmails) { $emailString .= '...'; } return trans("Invalid emails: :emails", ['emails' => $emailString]); } private function emailsDontExistMessage(array $emails): string { $emailString = implode(', ', array_slice($emails, 0, $this->maxEmails)); if (count($emails) > $this->maxEmails) { $emailString .= '...'; } return trans("Could not find users for emails: :emails", ['emails' => $emailString]); } /** * @inheritDoc */ public function message() { return $this->validationMessage; } }