我的問題實際上是用vich上傳檔案。它與其他物體完美配合。但是在我的用戶物體中它不起作用。
Vich上傳器配置:
vich_uploader:
db_driver: orm
mappings:
user_cover:
uri_prefix: /media/users
upload_destination: '%kernel.project_dir%/public/media/users'
namer: Vich\UploaderBundle\Naming\OrignameNamer
delete_on_update: true
delete_on_remove: true
play_media:
uri_prefix: /media/defis
upload_destination: '%kernel.project_dir%/public/media/defis'
namer: Vich\UploaderBundle\Naming\OrignameNamer
delete_on_update: true
delete_on_remove: true
play_media 映射作業完美,但我的問題來自user_cover
與我的用戶物體相關的部分:
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
#[Groups(['read:User'] )]
private $CoverPath;
/**
* @var File|null
* @Assert\File(
* maxSize = "2048k",
* mimeTypes = {"image/jpeg", "image/png"},
* mimeTypesMessage = "Please upload a valid cover image: jpeg or png under 2048k")
* @Vich\UploadableField(mapping="play_media_test", fileNameProperty="CoverPath")
*/
private $file;
/**
* Set the value of file
*
* @param File|null $file
* @return User
*/
public function setFile(?File $file = null) :User
{
$this->file = $file;
if ($file instanceof File) {
$this->setUpdatedAt(new \DateTime());
}
return $this;
}
和我的控制器(尚未檢查),理論上我認為我不應該更新日期,因為 setter 已經在這樣做并且不需要使用物體管理器(我無論如何都嘗試過),但是...:
public function __invoke(Request $request)
{
$user_data = $request->attributes->get('data');
$user_data->setFile($request->files->get('cover'));
$user_data->setUpdatedAt(new DateTime());
return $user_data;
}
和操作配置:
'cover' => [
'method' => 'POST' ,
'path' => 'user/{id}/cover',
'deserialize' => false,
'controller' => PostCoverUserController::class,
'openapi_context' => [
'security' =>
[['bearerAuth' => []]],
'summary' => 'Update the user cover image ',
'requestBody' => [
'content' => [
'multipart/form-data' => [
'schema' => [
'type' => 'object',
'properties' => [
'cover' => [
'type' => 'string',
'format' => 'biniray'
]
]
]
]
]
]
]
],
我重讀了幾次我的代碼,但我不明白為什么持久性沒有按預期作業?但是我的其他上傳作業完美。api 發回答案,dd 作業.. 只有持久性失敗。感謝您的幫助
uj5u.com熱心網友回復:
問題來自服務器的快取:php bin / console cache:clear ;)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/369285.html
