2016-10-07 10 views
1

コントローラからリダイレクトしてデータを渡したい。コントローラからリダイレクトしてデータを渡す

public function fortest(Request $request) 
{ 
    $user = DB::table('user2s')->where('name', $request->name)->first(); 
    if (isset($user)) 
    { 
     return redirect('/fortest2', ['user'=>$user]);//compact('user')); 
     //return $this->fortest2($request); 
    } 
} 
public function fortest2(Request $request) 
{ 
    return $request->name; 
} 

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

コードは、コントローラ内から直接コントローラを呼び出すときに機能します。データ型にはモデルがあります。どうすればこれを達成できますか?

答えて

1

リダイレクトでデータを渡す場合は、with()メソッドを使用できます。 あなたはそうのようなリダイレクトにそれを追加する必要があります。

redirect('/fortest2')->with('data', 'value'); 

再度ページを更新するまで、それが唯一の永続的となりますので、それは、あなたの現在のセッションに保存されます。あなたが長いためにそれを保存したい場合は、あなたがそれはあなたがまた、送信、withErrors()を使用して(検証すなわちから)リダイレクトでエラーを送信することができます

if (session()->has('data')) { // check if it exists 
    $value = session('data'); // to retrieve value 
} 

を使用するためにチェックすることができます/テキストファイルなどのデータベースに行かなければなりません現在の入力を使用してwithInput()


達成したいことは、コントローラでこれを試してみてください。これは、単にリダイレクトでユーザー名を送信します:

$user = DB::table('user2s')->where('name', $request->name)->first(); 
redirect('/fortest2')->with('username', $user->name); 

あなたは、その後のアクセスであることができますが、データを渡すためにセッションを使用する必要が

+0

この

public function fortest(Request $request) { $user = DB::table('user2s')->where('name', $request->name)->first(); if(isset($user)) { return redirect('/fortest2/$user->name'); } } public function fortest2($name) { return $name; } 

あなたのルートのようにやってみてください。しかし、どうすれば$ valueからデータを取得できますか?私が$ value-> nameを返そうとすると、 "非オブジェクトのプロパティを取得しようとしています"があります。セッションは私がセッション['id']にアクセスしなければならない配列ですか? – rur2641

+0

セッションはヘルパー機能です。 session( 'data')を呼び出すと、基本的に$ _SESSION ['data']を呼び出します。キーを取得する方法があるかどうかわかりません。キーを取得するためには何が必要ですか? –

+0

オブジェクトの名前を表示しようとしていますが、上記のエラーが発生します。 – rur2641

1

session('username')経由でリダイレクト使用している場合:次に

return redirect('/fortest2')->with('data', 'some data'); 

get data from session

$data = session('data'); 

DBに入れてそこから入手してください。

関連する問題