1

我刚刚开始使用 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 表单当我使用时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');
4

1 回答 1

2

1-如何在重定向时发送数据?

您可以使用->with()创建会话的方法简单地通过重定向传递数据,该会话只会出现在下一页更多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");
}

注意:当 somone 注销时,Laravel 不会刷新会话,如果不手动刷新或使用方法刷新,这些会话将保留$request->session()->flush();

于 2015-12-28T12:58:07.443 回答