Символ канала " | " имеет специальную функцию при проверке, он разделяет ваши правила проверки, например:
$validatedData = $request->validate([
'title' => 'required|unique:posts|max:255'
]);
Но так как ваша проверка регулярного выражения включает в себя символ канала, выМожно использовать другой метод объявления правил проверки
$validatedData = $request->validate([
'title' => [
'required',
'unique:posts',
'max:255'
]
]);
Так что это решение вашей проблемы:
if(isset($request->odnoklassniki)) {
$this->validate($request, [
'odnoklassniki' => [
'regex:/(?:https:\/\/)?(?:http:\/\/)?(?:www\.)?(?:ok|odnoklassniki)\.ru\/(?:\w*#!\/)?([\w-]*)?/'
]
], ['regex' => 'Enter correct url to your profile in this website']);
$candidate->odnoklassniki = $request->odnoklassniki;
$candidate->save();
}