我有一个 Laravel 5 项目,可以按类别名称过滤产品并显示它们。某些类别名称包含斜杠(/)和点(。),但是当我使用 rawurlencode()对我从中检索的名称进行编码时数据库为了生成网址,斜杠和点不是由 rawurlencode()编码的,当我尝试点击那些生成的链接时会导致 404 和内部错误。< / p>
我认为的代码:
@foreach($info['categories'] as $cat)
<a href="{{ route('listByCategory', rawurldecode($cat->description)) }}" class="list-group-item sidebar-menuitem">{{ $cat->description }}</a>
@endforeach
这里我的路线档案:
Route::get('/cat/{cat}', ['as' => 'listByCategory', 'uses' => 'ProductsController@display']);
这是我的控制者:
class ProductsController extends Controller
{
public function display($category)
{
$info = [];
$info['title'] = $category;
$info['products'] = DB::select('....);
return view('myview);
}
}
我的问题是:为什么rawurlencode()不会编码斜线和点?实现这一目标的正确方法是什么?
感谢。