2016-12-17 65 views
1

我的看法是这样的:如何在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] 

是否有任何人谁可以帮帮我吗?

回答

1

您的路线应为:

Route::get('users/index/{year}', '[email protected]')->name('users.index.year'); 

您的控制器:

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

然后你可以使用它在您的观点是:

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

存在这样的错误:'UserController中的ErrorException。php第36行:缺少参数2 for App \ Http \ Controllers \ UserController :: index()' –

+0

相同。它不起作用 –

+0

试着注释掉你的资源行'Route :: resource('users','UserController');'然后再试一次,也许它会导致一些问题。 –

0

你会怎么得来的方法争议

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

,你的路线应该是在航线

Route::get('users/index/{year}', '[email protected]'); 
1

传递参数是这样的:

Route::get('users/index/{year}', '[email protected]'); 

查看:

<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 PARAMS路线只是这样做:

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

并使用在控制器中抓住它这样的帮手:

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

希望能帮到你!

+0

似乎我需要你的帮助。看看这个:http://stackoverflow.com/questions/41788737/why-the-deleted-data-still-appear-in-the-interface –