名称年龄和上传文件未显示在数据库中



StudentController.php

我正在symfony中上传图像任务,但我的数据库没有显示这些项目,但我的程序工作正常,图像存储在web\uploads\photos中。

这是我的学生控制器.php任何人都可以帮助解决这个问题。

<?php 
namespace AppBundleController; 
use AppBundleEntityStudent; 
use AppBundleFormFormValidationType; 
use SymfonyBundleFrameworkBundleControllerController; 
use SensioBundleFrameworkExtraBundleConfigurationRoute; 
use SymfonyComponentHttpFoundationRequest; 
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentFormExtensionCoreTypeTextType; 
use SymfonyComponentFormExtensionCoreTypeFileType; 
use SymfonyComponentFormExtensionCoreTypeSubmitType;  
class StudentController extends Controller {    
/** 
* @Route("/student/new") 
*/ 
public function newAction(Request $request) { 
$student = new Student(); 
$form = $this->createFormBuilder($student) 
->add('name', TextType::class) 
->add('age', TextType::class) 
->add('photo', FileType::class, array('label' => 'Photo (png, jpeg)')) 
->add('save', SubmitType::class, array('label' => 'Submit')) 
->getForm(); 
$form->handleRequest($request); 
if ($form->isSubmitted() && $form->isValid()) { 
$file = $student->getPhoto(); 
$fileName = md5(uniqid()).'.'.$file->guessExtension(); 
$file->move($this->getParameter('photos_directory'), $fileName); 
$student->setPhoto($fileName); 
return new Response("User photo is successfully uploaded."); 
} else { 
return $this->render('student/new.html.twig', array( 
'form' => $form->createView(), 
)); 
} 
}   
}  

**Student.php**

这是我的实体类文件,我在这里做了三个字段 1.名称 2.3岁。相片 但是MySql没有向我显示任何更新。在此处输入图像描述。 在此处输入图像描述,我的文件上传成功,但数据库未更新

<?php
namespace AppBundleEntity;
use DoctrineORMMapping as ORM;

/**
* Student
*
* @ORMTable(name="student")
* @ORMEntity(repositoryClass="AppBundleRepositoryStudentRepository")
*/
class Student
{
/**
* @var int
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORMColumn(name="name", type="string", length=255)
*/
private $name;
/**
* @var int
*
* @ORMColumn(name="age", type="integer")
*/
private $age;
/**
* @var string
*
* @ORMColumn(name="photo", type="string", length=255)
*/
private $photo;

/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param string $name
*
* @return Student
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Set age
*
* @param integer $age
*
* @return Student
*/
public function setAge($age)
{
$this->age = $age;
return $this;
}
/**
* Get age
*
* @return int
*/
public function getAge()
{
return $this->age;
}
/**
* Set photo
*
* @param string $photo
*
* @return Student
*/
public function setPhoto($photo)
{
$this->photo = $photo;
return $this;
}
/**
* Get photo
*
* @return string
*/
public function getPhoto()
{
return $this->photo;
}
}


**new.html.twig**

{% extends 'base.html.twig' %} 
{% block javascripts %} 
<script language = "javascript" src = "https://code.jquery.com/jquery-2.2.4.min.js"></script> 
{% endblock %} 
{% block stylesheets %} 
<style> 
#simpleform { 
width:600px; 
border:2px solid grey; 
padding:14px; 
}  
#simpleform label { 
font-size:12px; 
float:left; 
width:300px; 
text-align:right; 
display:block; 
} 
#simpleform span { 
font-size:11px; 
color:grey; 
width:100px; 
text-align:right; 
display:block; 
}  
#simpleform input { 
border:1px solid grey; 
font-family:verdana; 
font-size:14px; 
color:grey; 
height:24px; 
width:250px; 
margin: 0 0 20px 10px; 
}  
#simpleform button { 
clear:both; 
margin-left:250px; 
background:grey; 
color:#FFFFFF; 
border:solid 1px #666666; 
font-size:16px; 
} 
</style> 
{% endblock %} 
{% block body %} 
<h3>Student form</h3> 
<div id="simpleform"> 
{{ form_start(form) }} 
{{ form_widget(form) }} 
{{ form_end(form) }} 
</div>   
{% endblock %}  

parameters: photos_directory: '%kernel.root_dir%/../web/uploads/photos'

您需要使用原则实体管理器来保留和刷新数据库中的对象。

$entityManager->persist($yourEntity);
$entityManager->flush($yourEntity);

我建议你阅读有关教义和形式的symfony文档。

已修复控制器操作:

<?php
class StudentController extends Controller {    
/** 
* @Route("/student/new") 
*/ 
public function newAction(Request $request) { 
$student = new Student(); 
$form = $this->createFormBuilder($student) 
->add('name', TextType::class) 
->add('age', TextType::class) 
->add('photo', FileType::class, array('label' => 'Photo (png, jpeg)')) 
->add('save', SubmitType::class, array('label' => 'Submit')) 
->getForm(); 
$form->handleRequest($request); 
if ($form->isSubmitted() && $form->isValid()) { 
$file = $student->getPhoto(); 
$fileName = md5(uniqid()).'.'.$file->guessExtension(); 
$file->move($this->getParameter('photos_directory'), $fileName); 
$student->setPhoto($fileName); 
$em = $this->getManager()->getDoctrine();
$em->persist($student);
$em->flush();
return new Response("User photo is successfully uploaded."); 
} else { 
return $this->render('student/new.html.twig', array( 
'form' => $form->createView(), 
)); 
} 
}   
}  

相关内容

  • 没有找到相关文章

最新更新