preg_replace (): Сбой компиляции: недопустимый диапазон в классе символов по смещению 11 в Laravel Slug - PullRequest
0 голосов
/ 17 февраля 2020

Я строю систему Arabi c Slug из моего блогового приложения

, когда я добавляю новый Slug, я получаю эту ошибку

preg_replace (): Ошибка компиляции: недопустимый диапазон в классе символов по смещению 11

контроллер

public function slug($string, $separator = '-') {
    if (is_null($string)) {
        return "";
    }

    $string = trim($string);

    $string = mb_strtolower($string, "UTF-8");;

    $string = preg_replace("/[^a-z0-9_\s-ءاأإآؤئبتثجحخدذرزسشصضطظعغفقكلمنهويةى]#u/", "", $string);

    $string = preg_replace("/[\s-]+/", " ", $string);

    $string = preg_replace("/[\s_]/", $separator, $string);

    return $string;
}

public function store(Request $request)
{
    $this->validate($request, array(
        'title'         => 'required|max:255',
        'slug'          => 'required|min:3|max:255|unique:posts',
        'body'          => 'required',
    ));
    $post = new Post;
    $post->title = $request->input('title');
    $post->slug = $this->slug($request->slug);
    $post->body = $request->input('body');


    $post->save();

    return redirect('admin/posts')->with('success', 'post is successfully saved');
}

маршрут

Route::get('post/{slug}', 'PagesController@post')->name('post.show');

1 Ответ

1 голос
/ 17 февраля 2020

У вас есть дополнительные - после \s.

Замените:

$string = preg_replace("/[^a-z0-9_\s-ءاأإآؤئبتثجحخدذرزسشصضطظعغفقكلمنهويةى]#u/", "", $string);

на

$string = preg_replace("/[^a-z0-9_\sءاأإآؤئبتثجحخدذرزسشصضطظعغفقكلمنهويةى]#u/", "", $string);

Или исправьте его в соответствии с вашим регулярным выражением, как избежать этого \-.

...