将值从一个视图传递到其他 laravel 路由配置
Pass value from one view to other laravel routes configuration
我刚刚开始使用 laravel,目前使用的是 5.2 版本。
我正在使用两种形式来获取数据。第一个视图中的第一个表单和第二个视图中的第二个表单。我需要想办法告诉第二个表单,第一个表单的表单 ID,第二个表单将链接到哪个表单。
我知道这可以通过使用 URL 传递值来完成。但是我缺乏正确的语法知识。
1-如何在重定向时发送数据?
2- 路线应该是什么样的?
3- 如何在第二个视图中访问该值,以便在第二个表单提交时传递该值?
我在谷歌上搜索了很多,但无法理解那些高级语法。
感谢任何帮助。
提前致谢。
这是控制器中的代码:
public function postCreateProfile(Request $request){
//Adding attributes from $request to $profile
$profile->save();
Session::flash('values',$request->azauj_id);
return redirect('/add/requirement');
}
public function getCreateRequirement(Request $request){
$att = Session::get('value');
Session::flash('value',$att);
return view('req');
}
public function postCreateRequirement(Request $request){
dd(Session::get('value'));
}
表格是普通的 html 表格,具有 post 提交方法
当我使用 dd(Session::get('value'));
时,我得到空值。这意味着该值未被传递。到提交第二个表单时调用的 postCreateRequirement 方法。
以下是路线。
//For Add Profile Page
Route::get('/add', 'ProfileController@getCreateProfile');
//For Add Profile Form Submission
Route::post('/add', 'ProfileController@postCreateProfile');
//For Add Requirements Page
Route::get('/add/requirement', 'ProfileController@getCreateRequirement');
//For Add Requirements Form Submission
Route::post('/add/requirement', 'ProfileController@postCreateRequirement');
1-重定向时如何发送数据?
您可以使用 ->with()
方法简单地通过重定向传递数据,该方法创建一个只会出现在下一页的会话 more here
示例:
假设您想将状态发送到您的视图,您将 with 添加到您的重定向:
// Where you are redirecting to
redirect("/otherRoute")->with("status", "Profile updated!");
// session name // data
现在您只需检查会话是否存在并将其回显即可:
// If the session does not exist it will return false and not create it
@if (session("status"))
<div class="alert alert-success">
// echo out the session
{{ session("status") }}
</div>
@endif
2-路线应该是什么样的?
路由应该在位于 http 目录的 routes.php 文件中定义,假设您正在发布数据,您应该制作路由并将它们连接到您的控制器,如下所示:
//For Add Profile Page
Route::get('/add', 'ProfileController@getCreateProfile');
//For Add Profile Form Submission
Route::post('/add', 'ProfileController@postCreateProfile');
//For Add Requirements Page
Route::get('/add/requirement', 'ProfileController@getCreateRequirement');
//For Add Requirements Form Submission
Route::post('/add/requirement', 'ProfileController@postCreateRequirement');
3- 如何在第二个视图中访问该值,以便在第二个表单提交时传递该值?
您可以简单地在重定向中使用 ->with()
方法
public function postCreateProfile(Request $request){
//Adding attributes from $request to $profile
$profile->save();
return redirect('/add/requirement')->with("value",$request->azauj_id);
}
获取值
public function getCreateRequirement(Request $request){
$value = session("value");
// compact it and trow it in an input to pass it trough to the last controller method
return view('req');
}
public function postCreateRequirement(Request $request){
$request->get("value");
}
或
创建一个全局会话并在之后刷新它
public function postCreateProfile(Request $request){
//Adding attributes from $request to $profile
$profile->save();
session("value",$request->azauj_id);
return redirect('/add/requirement');
}
获取值
public function getCreateRequirement(Request $request){
return view('req');
}
public function postCreateRequirement(Request $request){
$value = session("value");
$request->session()->forget("value");
}
注意:Laravel 不会在有人注销时刷新会话,如果不手动刷新或使用 $request->session()->flush();
方法,这些会话将保留
我刚刚开始使用 laravel,目前使用的是 5.2 版本。 我正在使用两种形式来获取数据。第一个视图中的第一个表单和第二个视图中的第二个表单。我需要想办法告诉第二个表单,第一个表单的表单 ID,第二个表单将链接到哪个表单。
我知道这可以通过使用 URL 传递值来完成。但是我缺乏正确的语法知识。
1-如何在重定向时发送数据?
2- 路线应该是什么样的?
3- 如何在第二个视图中访问该值,以便在第二个表单提交时传递该值?
我在谷歌上搜索了很多,但无法理解那些高级语法。 感谢任何帮助。
提前致谢。
这是控制器中的代码:
public function postCreateProfile(Request $request){
//Adding attributes from $request to $profile
$profile->save();
Session::flash('values',$request->azauj_id);
return redirect('/add/requirement');
}
public function getCreateRequirement(Request $request){
$att = Session::get('value');
Session::flash('value',$att);
return view('req');
}
public function postCreateRequirement(Request $request){
dd(Session::get('value'));
}
表格是普通的 html 表格,具有 post 提交方法
当我使用 dd(Session::get('value'));
时,我得到空值。这意味着该值未被传递。到提交第二个表单时调用的 postCreateRequirement 方法。
以下是路线。
//For Add Profile Page
Route::get('/add', 'ProfileController@getCreateProfile');
//For Add Profile Form Submission
Route::post('/add', 'ProfileController@postCreateProfile');
//For Add Requirements Page
Route::get('/add/requirement', 'ProfileController@getCreateRequirement');
//For Add Requirements Form Submission
Route::post('/add/requirement', 'ProfileController@postCreateRequirement');
1-重定向时如何发送数据?
您可以使用 ->with()
方法简单地通过重定向传递数据,该方法创建一个只会出现在下一页的会话 more here
示例: 假设您想将状态发送到您的视图,您将 with 添加到您的重定向:
// Where you are redirecting to
redirect("/otherRoute")->with("status", "Profile updated!");
// session name // data
现在您只需检查会话是否存在并将其回显即可:
// If the session does not exist it will return false and not create it
@if (session("status"))
<div class="alert alert-success">
// echo out the session
{{ session("status") }}
</div>
@endif
2-路线应该是什么样的?
路由应该在位于 http 目录的 routes.php 文件中定义,假设您正在发布数据,您应该制作路由并将它们连接到您的控制器,如下所示:
//For Add Profile Page
Route::get('/add', 'ProfileController@getCreateProfile');
//For Add Profile Form Submission
Route::post('/add', 'ProfileController@postCreateProfile');
//For Add Requirements Page
Route::get('/add/requirement', 'ProfileController@getCreateRequirement');
//For Add Requirements Form Submission
Route::post('/add/requirement', 'ProfileController@postCreateRequirement');
3- 如何在第二个视图中访问该值,以便在第二个表单提交时传递该值?
您可以简单地在重定向中使用 ->with()
方法
public function postCreateProfile(Request $request){
//Adding attributes from $request to $profile
$profile->save();
return redirect('/add/requirement')->with("value",$request->azauj_id);
}
获取值
public function getCreateRequirement(Request $request){
$value = session("value");
// compact it and trow it in an input to pass it trough to the last controller method
return view('req');
}
public function postCreateRequirement(Request $request){
$request->get("value");
}
或 创建一个全局会话并在之后刷新它
public function postCreateProfile(Request $request){
//Adding attributes from $request to $profile
$profile->save();
session("value",$request->azauj_id);
return redirect('/add/requirement');
}
获取值
public function getCreateRequirement(Request $request){
return view('req');
}
public function postCreateRequirement(Request $request){
$value = session("value");
$request->session()->forget("value");
}
注意:Laravel 不会在有人注销时刷新会话,如果不手动刷新或使用 $request->session()->flush();