如何将href内的值传递给laravel控制器?

时间:2016-01-15 11:51:50

标签: php laravel

这是我的视图文件中的代码段。

@foreach($infolist as $info)
 <a href="">{{$info->prisw}} / {{$info->secsw}}</a>
@endforeach

这是我在路线文件

中定义的路线
Route::get('switchinfo','SwitchinfoController');

我想将href标记内的两个值传递给上面的路径并在控制器中检索它们。有人可以提供代码来做这件事吗?

3 个答案:

答案 0 :(得分:4)

由于您尝试将两个参数传递给控制器​​,

您的控制器可能如下所示:

<?php namespace App\Http\Controllers;

class SwitchinfoController extends Controller{

    public function switchInfo($prisw, $secsw){
       //do stuffs here with $prisw and $secsw
    }
}

您的路由器可能看起来像这样

$router->get('/switchinfo/{prisw}/{secsw}',[
    'uses' => 'SwitchinfoController@switchInfo',
    'as'   => 'switch'
]);

然后在你的刀片中

@foreach($infolist as $info)
  <a href="{!! route('switch', ['prisw'=>$info->prisw, 'secsw'=>$info->secsw]) !!}">Link</a>
@endforeach

答案 1 :(得分:4)

您可以在网址中传递参数,例如

@foreach($infolist as $info)
<a href="{{ url('switchinfo/'.$info->prisw.'/'.$info->secsw.'/') }}">
{{$info->prisw}} / {{$info->secsw}}
</a>
@endforeach

和路线

Route::get('switchinfo/{prisw}/{secsw}', 'SwitchinfoController@functionname');

和控制器中的功能

public functionname($prisw, $secsw){
  // your code here
}

答案 2 :(得分:3)

为您的路线命名:

Route::get('switchinfo/{parameter}',
        ['as'=> 'test', 'uses'=>'SwitchinfoController@function']
);

使用您想要的参数传递和数组

 <a href="{{route('test', ['parameter' => 1])}}">
        {{$info->prisw}} / {{$info->secsw}}
    </a>

并在控制器功能中使用

function ($parameter){}

或者,如果您不想将参数绑定到网址,只想要$_GET <{1}}等url/?parameter=1参数

您可以像这样使用它

Route::get('switchinfo', ['as'=> 'test', 'uses'=>'SwitchinfoController@function'] );

function (){
     Input::get('parameter');
}

Docs