如何获取laravel 5.3中的参数?

How to get parameter in 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>

当我将 link 悬停在 2016 年时,url 将是这样的:

localhost/mysystem/public/users?2016

我的routes\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]

有没有人可以帮助我?

你的路线应该是:

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]) }}

你会从方法论证中得到

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

你的路线应该是

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

像这样在路由中传递参数:

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

查看:

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

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

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>

The statement: {!! route('users.index', ['year' => 2016]) !!} will create a route like this: http://website.com/users/index?year=2016

并使用 request() 助手将其抓取到控制器中,如下所示:

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

希望对您有所帮助!