2016-12-30 163 views
0

我试图从路由传递一个变量给控制器。但不能成功。从路由传递参数到laravel中的控制器

我的路由条目现在是如下

Route::get('/Register', '[email protected]'); 

控制器文件我想获得一个参数。我的控制器功能如下

public function CheckCand() 
{ 
    echo $ID; 
} 

现在我该如何将路由变量ID传递给控制器​​。但我不想在URL中传递它,并且在获取函数中,我不想更改'/ Register'。

Route :: get('/ Register','NewRegister @ CheckCand');

意味着它将像从路由传递给控制器​​的隐藏参数。 可能是问题混乱,但我不知道如何更好地解释。

+0

这是一个GET路线,因此,所有的路由参数应在URL –

+0

OK传递命名您可以检索由Request参数,使您的功能要求的参数。但是有没有其他的方法可以将参数从路由传递给控制器​​。当我点击一个网页上的链接时,它会去路由,并从路由它将调用一个控制器的参数没有在URL中定义。 – Kash

回答

0

作为请求参数传递并使用请求在控制器中检索它。像下面的东西。

的jQuery

$.get('/register', {ID :'123'}, function(data) {}); 

的Javascript

<a href="{{ url('register') }}" onclick="event.preventDefault(); document.getElementById('register-form').submit();">...</a> 
<form id="register-form" action="{{ url('register') }}" method="GET" style="display: none;"><input type="hidden" name="ID" value="..."/></form> 

控制器

public function CheckCand(Request $request) { 
    $request->ID; 
} 
+0

我在超链接点击调用CheckCand()函数。那么我应该如何在路由文件中调用这个jquery。 – Kash

+0

尝试将该ID作为参数添加到网址中。像'href =“/ register?ID = 123”' –

+0

这就是我所问的。我不想在URL中传递参数。 – Kash

0

你,当你与他们擦肩而过

public function CheckCand(){ 

$request = Request::all(); 
$ID = $request->ID ; 
// Or 
$ID = $request['ID']; 
} 
+0

请求参数很好,但如何从路由传递给控制器​​。 – Kash

+0

你用'Key'和'Value'把它们作为'Parameters'传递给你的JS代码,所以你不必在你的'route'文件中添加@Kash – Nour