2016-12-30 11 views
0

ルートからコントローラへ変数を渡そうとしています。しかし、成功することはできません。laravelのルートからコントローラへのパラメータの受け渡し

私のルートエントリは、私は1つのパラメータを取得したいコントローラファイルになりました

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

以下の通りです。私のコントローラの機能は以下の通りです

public function CheckCand() 
{ 
    echo $ID; 
} 

ここで、どのようにして経路IDからコントローラに変数IDを渡しますか?しかし、私はURLに渡したいとは思っていませんし、関数を取得するには '/ Register'を変更したくありません。

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

ルートからコントローラに渡される隠しパラメータのようになります。 質問が混乱しているかもしれませんが、説明する方法がわかりません。

+0

それらを通過したときの名前あなたのようなパラメータをパラメータを取得することができますしたがって、すべてのルートのパラメータは、[OK] URL –

+0

に渡す必要があり、GETルートです。しかし、私が経路からコントローラにパラメータを渡すことができる他の方法があります。私は、Webページ上のリンクをクリックすると経路に行き、経路からは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

URLにid asパラメータを追加してみてください。 'href ="/register?ID = 123 "' –

+0

のように、それは私が求めていたものです。私はURLにパラメータを渡したくない。 – Kash

0

あなたの機能要求でそうRequestによってあなたは

public function CheckCand(){ 

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

がうまくいくかどうかを確認しますが、ルートからコントローラに渡す方法を確認してください。 – Kash

+0

'Key'と' Value'を使ってJSコードを 'Parameters'として渡すので'ルート 'ファイルの中に@Kashを追加する必要はありません – Nour

関連する問題