如何更新请求值
How Can I update Request value
我正在进行一个将成为文件管理器的个人项目,此时获取文件并将其移动到自定义目录的部分正在运行,但上传此 "dir" 到 DB 不工作,这是我的控制器的 "store" 功能。
public function store(Request $request)
{
$request->validate([
'path' => 'required',
'id_class' => 'required'
]);
$file = $request->path;
$fileName = bin2hex(random_bytes(5)) . ".pdf";
$folder = "files/" . str_pad($request['id_user'], 6, "0", STR_PAD_LEFT)
. "/" . date("Y-m-d");
$path = $file->storeAs(
$folder,
$fileName
);
$request = $request->merge(['path' => $path]);
if (Presentation::create($request->all())) {
return redirect()->route('presentation.create')
->with('success', "Presentation successfully exported {$path}");
}
}
你可以看到我显示的是“$path”,收到的消息是
"Presentation successfully exported files/000001/2019-10-09/a1c3b14192.pdf"
但在我的 table 上 Xampp 正在接收 "D:\xampp\tmp\phpBDBA.tmp"。
可能缺少信息,这是我的 Table:
您不能合并这样的请求。您可以找到打印请求的原因 dd($request);
$request = $request->merge(['path' => $path]);
你可以这样试试:
$requestData = collect($request->only(['path', 'id_class']));
// or
// $requestData = collect($request->all());
$requestData = $requestData->merge(['path' => $path]);
Presentation::create($requestData);
希望对您有所帮助。
您可以通过 merge
将输入合并到请求中,但文件仍然存在于单独的源中。在这种情况下,您将输入 path
设置为您生成的存储文件路径,但文件中的 path
var 仍然作为 UploadedFile
对象存在。 all
方法以文件优先的方式将文件合并到输入中。在你的情况下只获得输入(不包括文件)你可以调用 input()
而不是 all()
.
Presentation::create($request->input())
我正在进行一个将成为文件管理器的个人项目,此时获取文件并将其移动到自定义目录的部分正在运行,但上传此 "dir" 到 DB 不工作,这是我的控制器的 "store" 功能。
public function store(Request $request)
{
$request->validate([
'path' => 'required',
'id_class' => 'required'
]);
$file = $request->path;
$fileName = bin2hex(random_bytes(5)) . ".pdf";
$folder = "files/" . str_pad($request['id_user'], 6, "0", STR_PAD_LEFT)
. "/" . date("Y-m-d");
$path = $file->storeAs(
$folder,
$fileName
);
$request = $request->merge(['path' => $path]);
if (Presentation::create($request->all())) {
return redirect()->route('presentation.create')
->with('success', "Presentation successfully exported {$path}");
}
}
你可以看到我显示的是“$path”,收到的消息是
"Presentation successfully exported files/000001/2019-10-09/a1c3b14192.pdf"
但在我的 table 上 Xampp 正在接收 "D:\xampp\tmp\phpBDBA.tmp"。
可能缺少信息,这是我的 Table:
您不能合并这样的请求。您可以找到打印请求的原因 dd($request);
$request = $request->merge(['path' => $path]);
你可以这样试试:
$requestData = collect($request->only(['path', 'id_class']));
// or
// $requestData = collect($request->all());
$requestData = $requestData->merge(['path' => $path]);
Presentation::create($requestData);
希望对您有所帮助。
您可以通过 merge
将输入合并到请求中,但文件仍然存在于单独的源中。在这种情况下,您将输入 path
设置为您生成的存储文件路径,但文件中的 path
var 仍然作为 UploadedFile
对象存在。 all
方法以文件优先的方式将文件合并到输入中。在你的情况下只获得输入(不包括文件)你可以调用 input()
而不是 all()
.
Presentation::create($request->input())