Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法更新Symfony 3中的记录获取错误_Php_Symfony_Doctrine Orm_Twig - Fatal编程技术网

Php 无法更新Symfony 3中的记录获取错误

Php 无法更新Symfony 3中的记录获取错误,php,symfony,doctrine-orm,twig,Php,Symfony,Doctrine Orm,Twig,这是我的DefaultController.php。我想编辑我的表单,但无法编辑。我犯了一个错误。我还附上了错误截图。我见过很多例子,但都做不到 <?php namespace AppBundle\Controller; use AppBundle\Entity\users; use AppBundle\Entity\Login; use AppBundle\Entity\Product; use Symfony\Component\Form\Extension\Core\Type\F

这是我的DefaultController.php。我想编辑我的表单,但无法编辑。我犯了一个错误。我还附上了错误截图。我见过很多例子,但都做不到

<?php


namespace AppBundle\Controller;
use AppBundle\Entity\users;
use AppBundle\Entity\Login;
use AppBundle\Entity\Product;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\Session;


class DefaultController extends Controller
{

    /**
     * @Route("/edit/{id}", name="edit_user")
     */

    public function editAction($id, Request $request)
    {

            $user = $this->getDoctrine()
            ->getRepository('AppBundle:Product')
            ->find($id);

            $user->setProductname($user->getProductname());
            $user->setProductprice($user->getProductprice());
            $user->setFileinput($user->getFileinput());

            $user->setFileinput1($user->getFileinput1());
            $user->setFileinput2($user->getFileinput2());
            $user->setFileinput3($user->getFileinput3());


        //$user = new Product();
        /* $user->setProductname('pn');
        $user->setProductprice('pp');
        $user->setFileinput('fi');  */

        $form = $this->createFormBuilder($user)

            //->add('id', TextType::class)
            ->add('productname', TextType::class, array('label' => 'Product Name'))
            ->add('productprice', TextType::class, array('label' => 'Product Price'))
            ->add('fileinput', FileType::class, array('label' => 'Photo (png, jpeg)', 'attr' => array('class' => 'fieldClass')))

            ->add('fileinput1', FileType::class, array('label' => 'Photo (png, jpeg)', 'attr' => array('class' => 'fieldClass')))

            ->add('fileinput2', FileType::class, array('label' => 'Photo (png, jpeg)', 'attr' => array('class' => 'fieldClass')))

            ->add('fileinput3', FileType::class, array('label' => 'Photo (png, jpeg)', 'attr' => array('class' => 'fieldClass')))

            //->add('Register', SubmitType::class, array('label' => 'Create Task'))
            ->getForm();

            $form->handleRequest($request);

            if ($form->isSubmitted() && $form->isValid()) {

            //$id=$form['id']->getData();   
            $pn=$form['productname']->getData();
            $pp=$form['productprice']->getData();
            $fi=$form['fileinput']->getData();

            $fi1=$form['fileinput1']->getData();
            $fi2=$form['fileinput2']->getData();
            $fi3=$form['fileinput3']->getData();





         $fileName =$fi->getClientOriginalName(); 
         $fi->move($this->getParameter('photos_directory'), $fileName); 

         $fileName1 =$fi1->getClientOriginalName(); 
         $fi1->move($this->getParameter('photos_directory'), $fileName1); 

         $fileName2 =$fi2->getClientOriginalName(); 
         $fi2->move($this->getParameter('photos_directory'), $fileName2); 

         $fileName3 =$fi3->getClientOriginalName(); 
         $fi3->move($this->getParameter('photos_directory'), $fileName3); 

            $em = $this->getDoctrine()->getManager();
            $user = $em->getRepository('AppBundle:Product')->find($id);

            //$user->setFileinput($fi);
            $user->setProductname($pn);
            $user->setProductprice($pp);
            $user->setFileinput($fileName);

            $user->setFileinput1($fileName1);
            $user->setFileinput2($fileName2);
            $user->setFileinput3($fileName3);


             //$em = $this->getDoctrine()->getManager();
             //$em->persist($user);
             $em->flush();





        return $this->redirect($this->generateUrl('typography')); 

    }


        return $this->render('default/edit.html.twig', array(
        'user' => $user, 
        'form' => $form->createView()

        ));

    }
}
你正在写的,例如。
$user->setFileinput($user->getFileinput())

$user->getFileinput()
始终返回字符串(因为您只保留文件名!)

但是表单是用
文件类型::类构建的,因此需要一个文件而不是字符串,这正是错误消息告诉您的。
$user->setFileinput($user->getFileinput())

$user->getFileinput()
始终返回字符串(因为您只保留文件名!)


但是表单是用
文件类型::类构建的,因此需要一个文件而不是字符串,这正是错误消息告诉您的。

在表单类型中添加null处的data\u class属性

在表单类型中添加null处的data\u class属性

好的,谢谢先生,我是新来的symfony可以告诉我如何解决这个错误好的谢谢先生,我是新来的symfony可以告诉我如何解决这个错误->添加('fileinput',FileType::class,array('label'=>'Photo(png,jpeg)','attr'=>array('class'=>'fieldClass'),array('data_class'=>null)))这是对的还是这是对的?你能告诉我“->add吗('fileinput',FileType::class,array('label'=>'Photo(png,jpeg)','attr'=>array('class'=>'fieldClass','data'=>'fieldClass'=>null)))“正确的一个是:->添加('fileinput',FileType::class,array('data'=>'Photo(png,jpeg),'attr'=>array('class'=>'fieldClass')))->添加('fileinput',',,FileType::class,array('label'=>'Photo(png,jpeg)''attr'=>array('class'=>'fieldClass')、array('dataclass'=>null)))这是对的还是这是对的?你能告诉我“->add('fileinput',FileType::class,array('label'=>'Photo(png,jpeg)','attr'=>array('class'=>'fieldClass','dataclass'=>null)))正确的是:->add('fileinput',FileType::class,array('data_class'=>null,'label'=>Photo(png,jpeg),'attr'=>array('class'=>fieldClass'))
<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

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

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

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

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


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


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


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



    /**
     * Get id
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set productname
     *
     * @param string $productname
     *
     * @return Product
     */
    public function setProductname($productname)
    {
        $this->productname = $productname;

        return $this;
    }

    /**
     * Get productname
     *
     * @return string
     */
    public function getProductname()
    {
        return $this->productname;
    }

    /**
     * Set productprice
     *
     * @param integer $productprice
     *
     * @return Product
     */
    public function setProductprice($productprice)
    {
        $this->productprice = $productprice;

        return $this;
    }

    /**
     * Get productprice
     *
     * @return int
     */
    public function getProductprice()
    {
        return $this->productprice;
    }

    /**
     * Set fileinput
     *
     * @param string $fileinput
     *
     * @return Product
     */
    public function setFileinput($fileinput)
    {
        $this->fileinput = $fileinput;

        return $this;
    }

    /**
     * Get fileinput
     *
     * @return string
     */
    public function getFileinput()
    {
        return $this->fileinput;
    }


    /**
     * Set fileinput1
     *
     * @param string $fileinput1
     *
     * @return Product
     */
    public function setFileinput1($fileinput1)
    {
        $this->fileinput1 = $fileinput1;

        return $this;
    }

    /**
     * Get fileinput
     *
     * @return string
     */
    public function getFileinput1()
    {
        return $this->fileinput1;
    }


    /**
     * Set fileinput2
     *
     * @param string $fileinput2
     *
     * @return Product
     */
    public function setFileinput2($fileinput2)
    {
        $this->fileinput2 = $fileinput2;

        return $this;
    }

    /**
     * Get fileinput2
     *
     * @return string
     */
    public function getFileinput2()
    {
        return $this->fileinput2;
    }



    /**
     * Set fileinput3
     *
     * @param string $fileinput3
     *
     * @return Product
     */
    public function setFileinput3($fileinput3)
    {
        $this->fileinput3 = $fileinput3;

        return $this;
    }

    /**
     * Get fileinput3
     *
     * @return string
     */
    public function getFileinput3()
    {
        return $this->fileinput3;
    }


}
{% extends 'base.html.twig' %}

{% block body %}

<h1>EDIT PRODUCT</h1>

{{ form_start(form) }}

                {{ form_widget(form) }}
{{ form_end(form) }}

{% endblock %}