2016-11-19 2 views
2

Я использую пули в моем проекте Laravel по причинам SEO. URL-адрес построен таким образом: https://website.com/page/{id}/{slug}. Я хочу разрешить доступ к моим страницам только с идентификатором, и сам по себе сопоставить пул. Поэтому, если пользователь вводит website.com/1, он будет перенаправлен на website.com/1/slug.URL-кодирование с помощью Laravel и Hebrew

Так что я написал этот метод в контроллере страниц:

public function addSlug(Page $page) 
{ 
    return redirect('/page/' . $page->id . '/' . $page->slug); 
} 

И в моих маршрутах файл:

Route::get('/page/{page}', 'PagesC[email protected]'); 

Единственная проблема в том, что мои слизни слова на иврите, так вместо того, чтобы website.com/1/שער-7 например, я получаю website.com/1/שער-7

Есть ли способ преодолеть это?

(Примечание: База данных и кодирование файла UTF-8)

(Примечание 2: Я могу получить доступ к странице с помощью website.com/1/hebrew-slug Я думаю, что проблема с методом переадресации.).

+0

Разве это не специфическая проблема с этим браузером? Я тестировал это (не с ивритом, а с буквами с акцентами, например 'čš', и он хорошо работает. – Kyslik

+0

Это произошло во всех браузерах ... – Daniel

ответ

1

Я столкнулся с той же проблемой, и все популярные пакеты с плагинами не работали с URL-адресами UTF-8, поэтому я написал my own package. Проверьте это, вы можете использовать его как есть, если вам не нужно транслировать символы UTF-8 в ASCII. Или вы можете разветвить его, чтобы внести некоторые изменения.

+0

Я могу получить доступ к странице через' website.com/1/hebrew-slug' Я думаю, проблема связана с методом перенаправления. – Daniel

+1

@ Даниэль ждет других ответов, может быть, кто-то покажет вам лучший способ, но я сам так и не нашел его, поэтому я написал пакет для своих проектов.) –

Смежные вопросы