route('page'); if ($page === null) { return false; } return $this->user()?->can('update', $page) ?? false; } protected function prepareForValidation(): void { $this->preparePreregistrationPageSettings(); $blocks = $this->input('blocks'); if (! is_array($blocks)) { return; } $merged = []; foreach ($blocks as $key => $row) { if (! is_array($row)) { continue; } $row['is_visible'] = filter_var($row['is_visible'] ?? false, FILTER_VALIDATE_BOOLEAN); $row['remove_block_image'] = filter_var($row['remove_block_image'] ?? false, FILTER_VALIDATE_BOOLEAN); $merged[$key] = $row; } $this->merge(['blocks' => $merged]); } /** * @return array> */ public function rules(): array { return array_merge( $this->preregistrationPageSettingsRules(), $this->preregistrationPageBlocksRules(), ); } public function withValidator(Validator $validator): void { $validator->after(function (Validator $validator): void { $blocks = $this->input('blocks'); if (! is_array($blocks)) { return; } PageBlockContentValidator::validateBlocksArray($validator, $blocks); }); } }