使用非英文字符的路线不适用于Laravel Collective

时间:2016-03-02 09:40:44

标签: laravel laravel-5 laravel-5.1

我正在尝试使用非英文字符(俄罗斯西里尔字母)的路线,这些路线工作正常:

Route::resource('франшизы/подкатегории', 'Franch\SubCategoryController');

但是当我尝试使用Form::构造的相同路线并发送表单时,我得到NotFoundHttpException in RouteCollection.php line 161例外:

// generates: http://localhost:8000/франшизы/подкатегории/20/edit?
{!! Form::open(array('method' => 'Get', 'route' => array('франшизы.подкатегории.edit', $subCategory->id))) !!}

我已经复制粘贴的代码并添加了新的路由,并且Form::只包含英文字符,效果很好:

// generates: http://localhost:8000/franch/sub/20/edit?
{!! Form::open(array('method' => 'Get', 'route' => array('franch.sub.edit', $subCategory->id))) !!}

Route::resource('franch/sub', 'Franch\SubCategoryController');

我的问题是如何让非英语路线发挥作用?如果不可能,还有哪些替代方案?

1 个答案:

答案 0 :(得分:1)

我在四个论坛上问了这个问题,但没有人能够帮助我。我仍然不知道这个问题的最佳解决方案,但我已经做到了:

Route::get('франшизы/подкатегории', 'Franch\SubCategoryController@index')->name('franch_sub_categories_index');
Route::resource('franchises/subcategories', 'Franch\SubCategoryController', ['except' => ['index']]);

它运作得很好。

  • 我在第一条路径中使用带有utf-8字符的网址 @index请求对SEO和URL可读性很重要。
  • 的 第二条路线处理所有RESTful请求。

希望它对你们中的一些人有所帮助。