gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 21:15:06 27 4
gpt4 key购买 nike

StudentController.php

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

这是我的 StudentController.php 任何人都可以帮助解决这个问题。

<?php 
namespace AppBundle\Controller;

use AppBundle\Entity\Student;
use AppBundle\Form\FormValidationType;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;

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 没有显示任何更新。 enter image description here . enter image description here , 我的文件上传成功但是数据库没有更新

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;



/**
* Student
*
* @ORM\Table(name="student")
* @ORM\Entity(repositoryClass="AppBundle\Repository\StudentRepository")
*/
class Student
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;

/**
* @var int
*
* @ORM\Column(name="age", type="integer")
*/
private $age;

/**
* @var string
*
* @ORM\Column(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'

最佳答案

您需要使用 doctrine 实体管理器来持久化和刷新数据库中的对象。

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

我建议您阅读有关原则和形式的 symfony 文档。

您的 Controller 操作已修复:

<?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(),
));
}
}
}

关于javascript - 名称年龄和上传文件未显示在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45760776/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com