【问题标题】:How to pass value from route to controller using Laravel 7.0?如何使用 Laravel 7.0 将值从路由传递到控制器?
【发布时间】:2020-11-30 16:31:17
【问题描述】:

我在从 Blade 传递值时遇到问题

{{ route('<route-name>', '['foe'=> $bar]') }}

路由 URL 参数有变量 foe 到控制器

控制器需要来自该路由的值。

如何获取敌人的数据?

【问题讨论】:

标签: laravel


【解决方案1】:

应该是:

{{ route('<route name>', ['foe' => $bar]) }}

或者,

{{ route('<route name>', $bar) }}

【讨论】:

    【解决方案2】:

    你的 web.php 中的路由应该这样定义:

    Route::get('route-name/{foe}', 'SomeController@show')-&gt;name('route-name');

    在你的控制器中:

    public function ($foe) {}
    

    现在$foe 应该包含变量$bar 的值

    可以在 Laravel 文档中找到更多信息:Laravel routing, parameters.

    【讨论】:

      【解决方案3】:

      使用 route() 辅助函数可以让您以两种不同的方式将参数传递给 URL:

      1. 如果定义的路由有命名参数,它将被参数名称替换并作为参数传递给控制器​​:
      Route::get('/example/{foe}', Controller::class)->name('example');
      
      route('example', ['foe' => 'bar']); // "/example/bar"
      
      class ExampleController
      {
          public function __invoke($foe)
          {
              // ...
          }
      }
      
      1. 如果路由没有命名参数,则提供给 route() 辅助函数的值将作为查询字符串附加到最终 URL,然后您可以从请求对象访问该 URL
      Route::get('/example', Controller::class)->name('example');
      
      route('example', ['foe' => 'bar']); // "/example?foe=bar"
      
      class ExampleController
      {
          public function __invoke()
          {
              request('foe');
          }
      }
      

      【讨论】:

        【解决方案4】:

        针对我的问题给出了解决方案,我想赞扬 STA 和 Ankita Patel 解决了我的问题

        解决方案是这样的语法:

        { route('', ['foe' => $bar]) }}

        【讨论】:

          猜你喜欢
          • 2016-04-16
          • 1970-01-01
          • 1970-01-01
          • 2021-01-28
          • 2019-07-10
          • 1970-01-01
          • 2019-06-18
          • 2017-05-14
          • 1970-01-01
          相关资源
          最近更新 更多