重定向并传递来自控制器的数据
Redirect and pass data from controller
我想从控制器重定向并传递数据;
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', 'UserController@fortest');
Route::get('/fortest2/', 'UserController@fortest2');
当直接从控制器内部调用控制器时,该代码有效。数据类型有一个模型。我怎样才能做到这一点?
如果要在重定向中传递数据,可以使用with()
方法。
您必须像这样将其附加到重定向:
redirect('/fortest2')->with('data', 'value');
它将保存在您当前的会话中,因此它只会一直存在,直到您再次刷新页面。如果您想将其存储更长时间,则必须使用 database/textfile 等。然后您可以使用
检查它
if (session()->has('data')) { // check if it exists
$value = session('data'); // to retrieve value
}
您还可以使用 withErrors()
发送重定向错误(来自验证,即),使用 withInput()
发送当前输入
对于您想实现的目标,请尝试在您的控制器中使用它。这只会发送带有重定向的用户名:
$user = DB::table('user2s')->where('name', $request->name)->first();
redirect('/fortest2')->with('username', $user->name);
然后您可以通过 session('username')
访问
使用重定向时需要使用会话传递数据:
return redirect('/fortest2')->with('data', 'some data');
$data = session('data');
或者您可以将数据保存在数据库中,然后从那里获取。
尝试这样做
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;
}
你的路线
Route::get('/fortest', 'UserController@fortest');
Route::get('/fortest2/{$name}', 'UserController@fortest2');
我想从控制器重定向并传递数据;
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', 'UserController@fortest');
Route::get('/fortest2/', 'UserController@fortest2');
当直接从控制器内部调用控制器时,该代码有效。数据类型有一个模型。我怎样才能做到这一点?
如果要在重定向中传递数据,可以使用with()
方法。
您必须像这样将其附加到重定向:
redirect('/fortest2')->with('data', 'value');
它将保存在您当前的会话中,因此它只会一直存在,直到您再次刷新页面。如果您想将其存储更长时间,则必须使用 database/textfile 等。然后您可以使用
检查它if (session()->has('data')) { // check if it exists
$value = session('data'); // to retrieve value
}
您还可以使用 withErrors()
发送重定向错误(来自验证,即),使用 withInput()
对于您想实现的目标,请尝试在您的控制器中使用它。这只会发送带有重定向的用户名:
$user = DB::table('user2s')->where('name', $request->name)->first();
redirect('/fortest2')->with('username', $user->name);
然后您可以通过 session('username')
使用重定向时需要使用会话传递数据:
return redirect('/fortest2')->with('data', 'some data');
$data = session('data');
或者您可以将数据保存在数据库中,然后从那里获取。
尝试这样做
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;
}
你的路线
Route::get('/fortest', 'UserController@fortest');
Route::get('/fortest2/{$name}', 'UserController@fortest2');