php对象持久化,将对象持久化到数据库错误

我有这个错误:

Expected argument of type "integer or null", "App\Entity\User" given

我不明白,我明白错误,但我不知道为什么会发生。

这是我的addcontroller.php文件:

namespace App\Controller\Tag;

use App\Entity\Tag;

use App\Form\Tag\AddType;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

use Symfony\Component\Config\Definition\Exception\Exception;

use Symfony\Component\HttpFoundation\Request;

class AddController extends Controller

{

public function add(Request $request)

{

$tag = new Tag();

$form = $this->createForm(AddType::class, $tag);

$form->handleRequest($request);

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

$entityManager = $this->getDoctrine()->getManager();

$pageInfo = $form->getData();

$description = $pageInfo['description'];

$name = $pageInfo['name'];

$guru = $pageInfo['guru_id'];

$createdTs = new \DateTime();

$tag->setApproved(false);

$tag->setDescription($description);

$tag->setName($name);

$tag->setGuruId((is_int($guru) ? $guru : null));

$tag->setCreatedTs($createdTs);

try {

$entityManager->persist($tag);

$entityManager->flush();

$this->addFlash('success', 'Tag Submitted for review! '. $guru);

} catch (Exception $e) {

$this->addFlash('danger', 'Something went skew-if. Please try again.');

}

return $this->redirectToRoute('tag_add');

}

return $this->render('tag/add.html.twig', array('form' => $form->createView()));

}

}

初始加载工作,但提交表单会生成上述错误。但我不知道为什么。即使我这样重新排序行:

$tag = new Tag();

$tag->setGuruId(null);

我的标记实体:

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**

* @ORM\Entity(repositoryClass="App\Repository\TagRepository")

*/

class Tag

{

/**

* @ORM\Id()

* @ORM\GeneratedValue()

* @ORM\Column(type="integer")

*/

private $id;

/**

* @ORM\Column(type="string", length=125)

*/

private $name;

/**

* @ORM\Column(type="string", length=255, nullable=true)

*/

private $description;

/**

* @ORM\Column(type="boolean")

*/

private $approved;

/**

* @ORM\Column(type="datetime")

*/

private $created_ts;

/**

* @ORM\Column(type="datetime", nullable=true)

*/

private $last_edit_ts;

/**

* @ORM\Column(type="integer", nullable=true)

*/

private $guru_id;

public function getId()

{

return $this->id;

}

public function getName(): ?string

{

return $this->name;

}

public function setName(string $name): self

{

$this->name = $name;

return $this;

}

public function getDescription(): ?string

{

return $this->description;

}

public function setDescription(?string $description): self

{

$this->description = $description;

return $this;

}

public function getApproved(): ?bool

{

return $this->approved;

}

public function setApproved(bool $approved): self

{

$this->approved = $approved;

return $this;

}

public function getCreatedTs(): ?\DateTimeInterface

{

return $this->created_ts;

}

public function setCreatedTs(\DateTimeInterface $created_ts): self

{

$this->created_ts = $created_ts;

return $this;

}

public function getLastEditTs(): ?\DateTimeInterface

{

return $this->last_edit_ts;

}

public function setLastEditTs(\DateTimeInterface $last_edit_ts): self

{

$this->last_edit_ts = $last_edit_ts;

return $this;

}

public function getGuruId(): ?int

{

return $this->guru_id;

}

public function setGuruId(?int $guru_id): self

{

$this->guru_id = $guru_id;

return $this;

}

}

我的addtype

use App\Entity\Tag;

use App\Entity\User;

use Symfony\Bridge\Doctrine\Form\Type\EntityType;

use Symfony\Component\Form\AbstractType;

use Symfony\Component\Form\Extension\Core\Type\TextareaType;

use Symfony\Component\Form\Extension\Core\Type\TextType;

use Symfony\Component\Form\FormBuilderInterface;

use Symfony\Component\OptionsResolver\OptionsResolver;

class AddType extends AbstractType

{

public function buildForm(FormBuilderInterface $builder, array $options)

{

$builder->add('name', TextType::class)

->add('description', TextareaType::class)

->add('guru_id', EntityType::class, array(

'class' => User::class,

'choice_label' => 'username'

));

}

public function configureOptions(OptionsResolver $resolver)

{

$resolver->setDefaults(array(

'data_class' => Tag::class

));

}

}

它仍然会给出相同的错误,所以我真的不确定它是如何生成的…如何将整数(从EntityType下拉列表中获取)持久化到数据库?

谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值