Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем привет,
В Laravel 5 приложении при сохранении делаю валидность на введенный цвет в app/Http/Requests/UserProfilesRequest.php:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Request;
use App\UserProfiles;
class UserProfilesRequest extends FormRequest
{
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules(Request $request)
{
return UserProfiles::getValidationRulesArray( $request->get('id') );
}
}
И на массив условий :
(
...
[color] => required|regex:~^#(([0-9a-fA-F]{2}){3}|([0-9a-fA-F]){3})$~
[background_color] => required|regex:~^#(([0-9a-fA-F]{2}){3}|([0-9a-fA-F]){3})$~
...
Получаю ошибку:
"message": "preg_match(): No ending delimiter '~' found",
Если проверить эту регулярку отдельно
$ret= preg_match('~^#(([0-9a-fA-F]{2}){3}|([0-9a-fA-F]){3})$~', preg_quote ('#004300'), $matches, PREG_OFFSET_CAPTURE);
echo '<pre>$ret::'.print_r($ret,true).'</pre>';
echo '<pre>$matches::'.print_r($matches,true).'</pre>';
то работает нормально...
Не понимаю почему ошибка...
Если символ тильды заменить на “/”, то ошибка:
ssage": "preg_match(): No ending delimiter '/' found",
Была мысль введенное значение при проверке обернуть в preg_quote - но не знаю а можно ли при использовании класса FormRequest обернуть введенное значение?
Или причина в ином ?
Спасибо !
Не в сети
Страницы 1