当前位置: 首页 > 知识库问答 >
问题:

Laravel 8获取当前路由参数

谢涵煦
2023-03-14

我在导航菜单中有下拉菜单来更改区域设置。但我不知道如何获得参数。如何获取当前参数?

当前参数:slug、quiz_id、id等

navigaiton菜单刀片:

    <a class="dropdown-item" href="{{route(Route::currentRouteName(),'az')}}"> Az </a>
    <a class="dropdown-item" href="{{route(Route::currentRouteName(),'en')}}"> En </a>

我有不同的路线。

web.php

Route::group(['prefix'=>'{language}'],function(){
    Route::get('quiz/{slug}',[MainController::class,'quiz_join'])->name('quiz_join');
    Route::get('quiz/{quiz_id}/questions/{id}', [QuestionController::class, 'destroy'] )->whereNumber('id')->name('question.destroy');
});

共有2个答案

满自明
2023-03-14

尝试使用此代码

$current_params = Route::current()->parameters();

dd($current_params->id);
dd($current_params->slug);
dd($current_params->quiz_id);

您可以打印$current_params以查看返回的参数是什么。

廉志强
2023-03-14

如果找不到其他方法,并且不存在其他方法,则可以使用url::toroute()并使用当前路由并从中提取参数:

URL::toRoute($cur = Route::current(), ['language' => 'az'] + $cur->parameters(), true)

您可以为此制作一个宏来简化它:

use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\URL;

URL::macro('toCurrentRouteWithParameters', function (array $parameters, $absolute = true) {
    $current = Route::current();
    return $this->toRoute($current, $parameters + $current->parameters(), $absolute);
});

您可以将其添加到服务提供程序的boot方法中。

然后你可以在你的刀片模板中调用它:

{{ URL::toCurrentRouteWithParameters(['language' => 'az']) }}
 类似资料:
  • 如何使用react router v4获取当前路径? 我尝试了以下方法,但没有成功: 错误: 这是我的Routes.js文件:

  • 在此URL中: 我想抓,当然是在路由里面。这工作很棒: 但是我想访问任何路由之外的路径以及文件如下:

  • 问题内容: 我想显示在以某种方式从目前的路线通过。 在React Router v4中,如何将当前路由传递到prop中? 有没有办法通过从自定义自定义标题上? 问题答案: 在5.1版本的react-router中,有一个名为 useLocation 的钩子,该钩子返回当前的位置对象。每当您需要知道当前URL时,这可能都会有用。

  • 我有一个路由器像下面: 以下是我想要实现的目标: 如果未登录,将用户重定向到 如果用户在登录后试图访问,请将其重定向到root 因此,现在我尝试在

  • 问题内容: 在Flask中,当我为同一功能使用多个路由时,如何知道当前使用的是哪个路由? 例如: 我怎么知道,现在我被称为使用或? 更新 我知道我不想使用它,因为请求可能相当复杂,并且我想在函数中重复路由逻辑。我认为最好的解决方案。 问题答案: 检查触发你的视图的路线的最“轻松”方法是request.url_rule。