【问题标题】:get URL Parameter from Laravel blade to controller从 Laravel 刀片获取 URL 参数到控制器
【发布时间】:2017-12-16 07:25:16
【问题描述】:

我已经为我的刀片提供了一个传递参数的链接。

<a href="{!! route('search',['id'=>2]) !!}">{{$value}}</a>

我现在唯一的问题是如何将参数获取到控制器。 我是这样做的

public function search(Request $request){
     $sid = $request->get('id');
}

但我没有从 $sid 获得任何价值。我该怎么做?

对不起,我忘了说已经有路线了。

Route::post('search', 'Search@search')->name('search');

【问题讨论】:

  • 我认为你需要得到这样的公共函数 search(Request $request,$id){ $sid = $id; }
  • 您的路线是 post 方法,但您试图获取值作为 get 方法。看看我的回答

标签: laravel url parameter-passing


【解决方案1】:

因为链接不是发布方法..这会起作用

<a href="{!! route('search',['id'=>2]) !!}">{{$value}}</a>

然后在你的路线中

Route::get('search/{id}',BlahblahController@search);

在你的控制器中

public function search(Request $request, $id)
{
    $id = $id;
}

【讨论】:

    【解决方案2】:

    如果你的路由 /youroute/{id} 这个方案,那么你需要再向控制器中的方法传递一个参数,像这样

    public function search(Request $request,$id){
     $sid = $id;
    }
    

    【讨论】:

      【解决方案3】:

      您尝试将 url bind parameter 传递给 function 。未传递 query 字符串 get 参数。所以你需要像这样访问id

      方法一:

      控制器:

      public function search(Request $request,$id){ $sid = $id; }
      

      你的路线应该是这样的

      路线:

      Route::get('search/{id}',BlahblahController@search);
      

      方法二:

      或者如果不想将参数绑定到 url 并且只想要 $_GET 参数,例如url/?id=1

      你可以这样使用它

      控制器:

      public function search(Request $request){
           $sid = $request->get('id');
      }
      

      路线:

       Route::get('search',BlahblahController@search);
      

      【讨论】:

      • 方法 2 是我当前的代码.. 但我很困惑为什么控制器上的 $sid 仍然没有价值
      • 否,你在路由中使用了 post 方法 Route::post('search', 'Search@search')->name('search');像这样改变这个get方法 Route::get('search', 'Search@search')->name('search');
      猜你喜欢
      • 2021-07-16
      • 2019-09-23
      • 2019-04-13
      • 1970-01-01
      • 2018-03-16
      • 2018-09-13
      • 2017-09-03
      • 2016-06-25
      • 1970-01-01
      相关资源
      最近更新 更多