如何在laravel 5.3中获取参数?

时间:2016-12-17 05:21:18

标签: php laravel get request laravel-5.3

我的观点是这样的:

<li class="{{ Request::is('users*') ? 'active' : '' }}">
    <a href="{!! route('users.index', 2016) !!}">
        <i class="fa fa-circle-o"></i> YEAR 2016
    </a>
</li>
<li>
    <a href="{!! route('users.index', 2017) !!}">
        <i class="fa fa-circle-o"></i> YEAR 2017
    </a>
</li>

当我将鼠标悬停在2016年的链接上时,网址将如下:

localhost/mysystem/public/users?2016

我的路线\ web.php是这样的:

Route::get('users/index?{year}', 'UserController');

Route::resource('users', 'UserController');

我的控制器用户是这样的:

public function index(Request $request)
{
    $year = $request->input('year');
    echo $year;die()
}

存在这样的错误:

UnexpectedValueException in Route.php line 646: Invalid route action: [App\Http\Controllers\UserController]

有没有人可以帮助我?

3 个答案:

答案 0 :(得分:1)

您的路线应为:

Route::get('users/index/{year}', 'UserController@index')->name('users.index.year');

您的控制器为:

public function index(Request $request, $year)
{
    echo $year;die()
}

然后您可以在视图中使用它:

{{ route('users.index.year', ['year' => 2016]) }}

答案 1 :(得分:1)

在路线中传递参数如下:

Route::get('users/index/{year}', 'UserController@index');

查看:

<a href="{!! route('users.index', ['year' => 2016]) !!}">
    <i class="fa fa-circle-o"></i> YEAR 2016
</a>

Controller(在控制器方法中作为参数获取):

public function index($year)
{
    echo $year;
    die();
}

或者 - 如果要将参数作为GET参数传递给路径,请执行以下操作:

Route::get('users/index', 'UserController');

并在<a href="">内:

<a href="{!! route('users.index', ['year' => 2016]) !!}">
    <i class="fa fa-circle-o"></i> YEAR 2016
</a>
  

声明:{!! route('users.index', ['year' => 2016]) !!}将创建如下路线:http://website.com/users/index?year=2016

并使用request()帮助器在控制器中抓取它,如下所示:

public function index()
{
    $year = request()->get('year');
    echo $year;
    die();
}

希望这有帮助!

答案 2 :(得分:0)

您将从方法论证中获得

public function index(Request $request,$para_year)
{
    $year = para_year;
    echo $year;die()
}

你的路线应该是

Route::get('users/index/{year}', 'UserController@index');