-2
私はSymfony 3で新しく、単純なWebアプリケーションを実装しています。エラーを私はフォームからデータを取得しようとしているが、要求を取得し、エンティティマネージャのインスタンスにデータを入れたときに私が得た、私はコードを説明しましょう:Symfony 3注意:クラスDoctrine ORM EntityManagerのオブジェクトをintに変換できません
これはコントローラである(DefaultController)
namespace Database\TestBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Database\TestBundle\Entity\Products;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
class DefaultController extends Controller
{
public function addAction(Request $request)
{
$product = new Products();
$form = $this->createFormBuilder($product)
->add('name', TextType::class)
->add('price', TextType::class)
->add('description', TextareaType::class)
->add('save', SubmitType::class, array('label' => 'Save Product'))
->getForm();
$form->handleRequest($request);
if($form->isValid())
{
$product = $form->getData();
$em = $this->getDoctrine()->getManager();
$em->persist($product);
$em-flush(); //I got the error in this line
return $this->redirect($this->generateUrl('database_test_list'));
}
return $this->render('DatabaseTestBundle:Default:add.html.twig', array(
'form' => $form->createView()));
}
}
これは
{% extends '::frontend.html.twig' %}
{% block title %}List of Products{% endblock %}
{% block body %}
<h1 class="clase">Add Product</h1>
<hr>
<a href="{{asset('test/list')}}" class="btn btn-warning" title="Return to list">Return to list</a>
<br/>
<br/>
{{ form_start(form, {'attr': {'class': 'form-horizontal'}}) }}
<div class="row">
<div class="col-sm-12">
<div class="form-group">
<label class="col-sm-1 control-label required" for="form_name">Name</label>
<div class="col-sm-3">
{{form_widget(form.name, {'attr': {'class': 'form-control col-md-12'}})}}
</div>
</div>
<div class="form-group">
<label class="col-sm-1 control-label required" for="form_price">Price</label>
<div class="col-sm-3">
{{form_widget(form.price, {'attr': {'class': 'form-control col-md-12'}})}}
</div>
</div>
<div class="form-group">
<label class="col-sm-1 control-label required" for="form_description">Description</label>
<div class="col-sm-3">
{{form_widget(form.description, {'attr': {'class': 'form-control col-md-12'}})}}
</div>
</div>
<hr/>
{{form_widget(form.save, {'attr': {'class': 'btn btn-default'}})}}
</p>
</div>
</div>
{{ form_end(form) }}
{% endblock %}
そして目(追加)これが私の見解である私のエンティティ(製品)
namespace Database\TestBundle\Entity;
/**
* Products
*/
class Products
{
/**
* @var int
*/
private $id;
/**
* @var string
*/
private $name;
/**
* @var int
*/
private $price;
/**
* @var string
*/
private $description;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param string $name
*
* @return Products
*/
public function setName($name)
{
$this->name= $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Set price
*
* @param integer $price
*
* @return Products
*/
public function setPrice($price)
{
$this->price= $price;
return $this;
}
/**
* Get price
*
* @return int
*/
public function getPrice()
{
return $this->price;
}
/**
* Set description
*
* @param string $description
*
* @return Products
*/
public function setDescription($description)
{
$this->description= $description;
return $this;
}
/**
* Get description
*
* @return string
*/
public function getDescription()
{
return $this->description;
}
}
ですはエラーメッセージです:
Stack Trace
in src\Database\TestBundle\Controller\DefaultController.php at line 48
46 $em = $this->container->get('doctrine')->getManager();
47 $em->persist($product);
48 $em-flush();
49 return $this->redirect($this->generateUrl('database_test_list'));
at ErrorHandler ->handleError ('8', 'Object of class Doctrine\ORM\EntityManager could not be converted to int',
'C:\xampp\htdocs\taller_symfony\src\Database\TestBundle\Controller\DefaultController.php', '48', array('request' => object(Request), 'producto' => object(Productos), 'form' => object(Form), 'em' => object(EntityManager)))
in src\Database\TestBundle\Controller\DefaultController.php at line 48
誰かがこのエラーについて考えていますか?誰でも私にこの手を差し伸べることができます、ありがとうございます。
ありがとうございます。 –
私は同じ間違いを何度も繰り返しました! –