由于 Doctrine 似乎在其最新更新中完全删除了注释支持,因此我尝试使用 Rector 将实体中的注释转换为属性。
我遵循(看似)简单的官方教程- 我有完全相同的ector.php内容,没有NetteSetList:
use Rector\Doctrine\Set\DoctrineSetList;
use Rector\Symfony\Set\SymfonySetList;
use Rector\Symfony\Set\SensiolabsSetList;
use Rector\Config\RectorConfig;
return function (RectorConfig $rectorConfig): void {
$rectorConfig->sets([
DoctrineSetList::ANNOTATIONS_TO_ATTRIBUTES,
SymfonySetList::ANNOTATIONS_TO_ATTRIBUTES,
SensiolabsSetList::FRAMEWORK_EXTRA_61,
]);
};
Run Code Online (Sandbox Code Playgroud)
我用 运行测试vendor/bin/rector process src/Entity --dry-run --debug。
它确实列出了 中的每个实体src/Entity,但没有检测到任何可能的更改,此时它应该用属性替换每个学说注释。
我正在尝试使用 AJAX 将带有文件的表单上传到我的服务器,但 Symfony 没有像应有的那样解析请求正文。这是我的 PHP:
#[Route('/api/upload/file', name: "api_upload_file", methods: ['POST'])]
public function create(Request $request): JsonResponse
{
dump($request->files->all());
dump($request->request->all());
dump($request->getContent());
...
Run Code Online (Sandbox Code Playgroud)
和转储输出(文件部分被删除,因为它占用大量空间):
[]
Run Code Online (Sandbox Code Playgroud)
[]
Run Code Online (Sandbox Code Playgroud)
"""
------WebKitFormBoundaryh4t0I09h9iTRNGme
Content-Disposition: form-data; name="subcategory"
1
------WebKitFormBoundaryh4t0I09h9iTRNGme
Content-Disposition: form-data; name="main_image"; filename=""
Content-Type: application/octet-stream
------WebKitFormBoundaryh4t0I09h9iTRNGme
Content-Disposition: form-data; name="more_images"; filename=""
Content-Type: application/octet-stream
------WebKitFormBoundaryh4t0I09h9iTRNGme
Content-Disposition: form-data; name="original_version"
------WebKitFormBoundaryh4t0I09h9iTRNGme
Content-Disposition: form-data; name="version"
------WebKitFormBoundaryh4t0I09h9iTRNGme
Content-Disposition: form-data; name="original_title"
------WebKitFormBoundaryh4t0I09h9iTRNGme
Content-Disposition: form-data; name="title"
"""
Run Code Online (Sandbox Code Playgroud)
请求显然通过了,所以我不明白为什么内容没有被解析
以防万一,这里是 javascript 部分:(这看起来像 JQuery,但不是)
form.submit(e => {
e.preventDefault();
let formData = createItemForm.formData();
$.ajax('/api/upload/file', {
headers: {
'Content-Type': 'multipart/form-data' …Run Code Online (Sandbox Code Playgroud)