for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace App\Services\Validation\Rules;
use Illuminate\Contracts\Validation\Rule;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Lang;
use App\Models\Applicant;
class UniqueApplicantSkillRule implements Rule
{
protected $applicant;
protected $skill_declaration_id;
/**
$applicant
$skill_declaration_id
* Create a new rule instance.
*
* @param App\Models\Applicant $user
App\Services\Validation\Rules\App\Models\Applicant
App\Models\Applicant
\
* @return void
*/
public function __construct(Applicant $applicant, $skill_declaration_id = null)
$this->applicant = $applicant;
$this->skill_declaration_id = $skill_declaration_id;
}
* This check passes if this applicant has no previous declaration for this skill,
* or if they are updating a previously existing declaration
* @param [type] $attribute [description]
[type]
0
* @param [type] $value [description]
* @return [type] [description]
public function passes($attribute, $value)
$prev_skills = $this->applicant->skill_declarations->where('skill_id', $value)->pluck('id');
return $prev_skills->isEmpty() ||
($this->skill_declaration_id != null && $prev_skill->contains($this->skill_declaration_id));
$prev_skill
$prev_skills
public function message()
return Lang::get('validation.custom.user_skill_unique');