record = $card; $this->characters = Character::all()->pluck('name', 'id'); $this->raids = Raid::all()->pluck('name', 'id'); $this->classes = Wow::$classes; $this->exist = $card->exists; } /** * Validation rules */ protected function rules() { return [ 'record.body' => 'required|string|min:3|max:200', 'record.character_id' => 'exists:' . Character::class . ',id|nullable', 'record.raid_id' => 'exists:' . Raid::class . ',id|nullable', 'record.class' => 'in:' . collect($this->classes)->keys() . '|nullable', ]; } public function updated($property, $value) { // Hack to force empty value to null. if (in_array($property, ['record.character_id', 'record.raid_id', 'record.class'])) { if (empty($value)) { $this->{$property} = null; } } $this->validateOnly($property); } }