laravel - 通过 http 或 guzzle 提交 Laravel Livewire 表单
问题描述
我的问题有几个组成部分。
Livewire 是否有一种简单的方法来获取表单中的所有表单元素,包括图像文件上传以及将以数组形式出现的动态表单字段。
我见过很多“联系我们”的 Livewire 表单示例,但没有一个是表单提交到外部 API 的。http 等价于
<form method="POST" action="apiplace.com/submit">
. 但是我不想离开页面。
现在我的表单以这种方式提交:
<form wire:submit.prevent="submit" enctype="multipart/form-data">
但是,在我的提交函数中,我需要通过 POST 将表单中的所有数据发送到 API,检索响应并向最终用户显示成功或任何错误。
解决方案
在您的 submit_form.blade.php 文件中:
<form wire:submit.prevent="submit">
<input type="file" wire:model="username">
<input type="file" wire:model="photo">
<button type="submit">Save Form</button>
</form>
在您的 livwire 组件文件中:
class SubmitForm extends Component
{
use WithFileUploads;
public $photo, $username;
public function submit()
{
$file = $this->photo;
$file_path = $file->getPathname();
$file_mime = $file->getMimeType('image');
$file_uploaded_name = $file->getClientOriginalName();
$res = $client->request('POST', 'http://example.com/api/upload', [
'multipart' => [
[
'filename' => $file_uploaded_name,
'Mime-Type'=> $file_mime,
'contents' => fopen($file_path, 'r'),
],
[
'name' => 'username',
'contents' => $this->username
]
],
]);
}
}
推荐阅读
- html - 当我将引导程序添加到我的项目时,
- 标记颜色混乱并更改为另一种颜色
- reactjs - 我收到 CORS 错误:Access-Control-Allow-Headers 不允许请求标头字段内容类型
- c# - 如何使用 c# 编辑内联图像的 mapi 属性内容配置?
- cors - 无法修复 Google Cloud 存储上的 CORS 政策
- php - 从其元键获取 WooCommerce 订单项自定义字段值
- r - 我如何知道每个集群中的元素数量?
- r - 在另一个函数中访问函数的定义变量
- excel - Excel问题,以特定方式组合列
- c# - 如何在 ServiceStack 中实现额外的基于过期令牌的授权层?
- swift - NSTableView 动画表格单元格视图图像