Symfony 使用Sonata Admin和Doctirne上载文件时出错
我正在遵循关于处理原则上传和sonata管理的指南。Symfony 使用Sonata Admin和Doctirne上载文件时出错,symfony,doctrine,sonata,Symfony,Doctrine,Sonata,我正在遵循关于处理原则上传和sonata管理的指南。 我仅使用id、路径和文件(图像)设置实体: 为了更好地阅读实体,我删除了一些字段。 对于这个实体,我遵循symfony食谱。 web/uploads下的文件夹具有777权限 然后我添加到sonata admin: protected function configureFormFields(FormMapper $formMapper) { $formMapper->add('title', 'text'); $form
我仅使用id、路径和文件(图像)设置实体: 为了更好地阅读实体,我删除了一些字段。
对于这个实体,我遵循symfony食谱。
web/uploads下的文件夹具有777权限 然后我添加到sonata admin:
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper->add('title', 'text');
$formMapper->add('text', 'text');
$formMapper->add('startDate', 'date');
$formMapper->add('endDate', 'date');
$formMapper->add('active', 'checkbox', array('required' => false));
$formMapper->add('file', 'file');
}
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper->add('text');
}
protected function configureListFields(ListMapper $listMapper)
{
$listMapper->addIdentifier('title');
$listMapper->add('text');
}
现在我登录sonata管理页面并尝试创建新实体。所有作品都是正确的,除了文件,我在数据库的所有字段中都是正确的。
web/uploads/documents下没有文件,数据库中的path字段中也没有路径(如果未设置路径,则我在SetFile函数中设置了“initial”。
我不知道我错在哪里。感谢您的帮助。问题是您从未调用实体的
上传方法
将以下方法添加到您的管理类(sonata):
它应该是有效的
这将在持久化/更新实体之前调用实体的upload
方法
参见奏鸣曲的相应部分。您必须添加
* @ORM\HasLifecycleCallbacks
阻挡
/**
* @ORM\Entity
* @ORM\Table(name="viaggio_perfetto")
*/
供使用
/**
* @ORM\PrePersist()
* @ORM\PreUpdate()
*/
/**
* @ORM\Entity
* @ORM\Table(name="viaggio_perfetto")
*/
/**
* @ORM\PrePersist()
* @ORM\PreUpdate()
*/