如何将数据传递给重定向到(Laravel)的路由返回的视图

时间:2016-11-29 05:27:44

标签: php laravel laravel-5

以下是我的情况。

我有两个控制器包含CRUD方法的模型。

  • 文档。
  • 文件。

创建文件时,将指定(选择)已创建文件所附加的文档。

在我store的{​​{1}}方法中,在存储新创建的文档之后,我希望使用新创建的文档的documentController重定向到files/create路由,以便文件无需选择文档即可创建。

到目前为止我有什么

DocumentController

id

文件/ create.blade.php

 $input = $request->all();
 $document = $this->documentRepository->create($input);
 return redirect(route('files.create'),array('documentID' => $document->id));

我怎么能做到这一点。

5 个答案:

答案 0 :(得分:2)

response()方法中的第二个参数是重定向时应该使用的http状态代码。

你需要链接with()方法:

 $input = $request->all();
 $document = $this->documentRepository->create($input);
 return redirect(route('files.create'))->with('documentID', $document->id);

然后,您可以使用{{ session('documentID') }}

从视图中访问传递的会话数据

请参阅:https://laravel.com/docs/5.3/responses#redirecting-with-flashed-session-data

答案 1 :(得分:1)

解决此问题的方法是制作接受documentID的新路线,以便获得Route::get('/files/createFromDocument/{$documentID}', 'FileController@createFromDocument')->name('files.createFromDocument');

之类的内容

FileController您要添加新功能 function createFromDocument($documentID) 在这里你可以处理这个特例

答案 2 :(得分:0)

已编辑:尝试此代码

return redirect()->route('files.create', ['documentID' => $document->id]);

答案 3 :(得分:0)

试试这个:

return redirect()->route('files.create', $document->id);

答案 4 :(得分:0)

试试这个:

return redirect("files/$document->id/create")

路线:

Route::get('/files/{$documentID}/create', 'FileController@createDocument');

功能:

public function createDocument($documentId){}