不幸的是,Laravel 文档(此处)中的多部分示例仅包含具有一个字段(附加文件)的示例 - Http::attach('file', $file_content)
。
它不是来自现实世界 - 在大多数情况下,多部分请求包含多个字段。
如何通过 HTTP 客户端创建具有多个字段的多部分请求,其中数组提供等效值?
需要将计算属性附加到模型中:
class Field extends Model {
//...
protected $appends = ['typename'];
//...
public function getTypenameAttribute(): string {
return $this->type->name;
}
}
模型转储向我显示以下内容:
{
"id": "9bc5b05b-46cf-470d-a848-cdb60aec2213",
"name": "Показание термометра",
"default": true,
"twin_id": "9bc5b05b-3df3-4efd-8ce0-7a30be87af72",
"type_id": "9bc3cea3-47e6-4ef2-a78f-347d51abbe3d",
"created_at": "2024-04-10T07:21:36.000000Z",
"updated_at": "2024-04-10T07:21:36.000000Z",
"deleted_at": null,
"origin": "thermo",
"typename": "Целочисленное без знака",
"type": {
"id": "9bc3cea3-47e6-4ef2-a78f-347d51abbe3d",
"name": "Целочисленное без знака",
"influx_type": "uint",
"created_at": "2024-04-09T08:54:37.000000Z",
"updated_at": "2024-04-09T08:54:37.000000Z",
"deleted_at": null
}
}
typename
计算好了。但我不想包含嵌套type
对象。我的模型类不包含任何$with
,所以这个对象完全出乎意料。
如何从转储中排除这个嵌套对象?
沙箱中的根标签App
如下所示:
import React from 'react'
import { useState, useCallback } from 'react'
export default function App() {
let [dark, setDark] = useState(true)
const toggleDark = useCallback(() => {
setDark(!dark)
}, []);
return (
<main>
<p onClick={toggleDark}>{dark ? 'dark mode' : 'light mode'}</p>
</main>
)
}
初始页面内容-“深色模式”。
按下它,更改为“灯光模式”。
再次按“灯光模式”-没有任何变化。似乎应用程序的状态只改变了一次。
如何在每次单击 <p> 时强制更改状态?
您可以在Replit 沙盒中查看完整示例