php - 服务中的 Symfony4 findAll 返回空数组
问题描述
我有一个问题:我在服务中获得了一个存储库,我在它上面做了一个 findAll,问题:我得到一个空数组(而我的数据库不是)。所以我想我做错了什么,希望你能不吝赐教。
<?php
/**
* Created by PhpStorm.
* User: thocou
* Date: 07/03/19
* Time: 15:05
*/
namespace App\Service;
use App\Entity\RentRelease;
use App\Repository\PropertyRepository;
use Doctrine\Common\Persistence\ObjectManager;
class RentReleaseInsertion
{
private $propertyRepository;
private $manager;
public function __construct(PropertyRepository $propertyRepository, ObjectManager $manager)
{
$this->propertyRepository = $propertyRepository;
$this->manager = $manager;
}
public function settingRentReleaseValues()
{
$property = $this->propertyRepository->findAll();
dd($property);
foreach ($property as $prop) {
$lessees = $prop->getLessees();
foreach ($lessees as $lessee) {
$rentRelease = new RentRelease();
$amount = $prop->getRentExcludingCharges() + $prop->getCharges();
$rentRelease->setRentRelease($lessee);
$rentRelease->setAmount($amount);
$rentRelease->setStatus('Paiement en attente');
$this->manager->persist($rentRelease);
$this->manager->flush();
}
}
}
}
存储库在这里:
<?php
namespace App\Repository;
use App\Entity\Property;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Symfony\Bridge\Doctrine\RegistryInterface;
/**
* @method Property|null find($id, $lockMode = null, $lockVersion = null)
* @method Property|null findOneBy(array $criteria, array $orderBy = null)
* @method Property[] findAll()
* @method Property[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/
class PropertyRepository extends ServiceEntityRepository
{
public function __construct(RegistryInterface $registry)
{
parent::__construct($registry, Property::class);
}
}
老实说,我真的不明白问题出在哪里,即使我怀疑这是一个非常小的问题。
编辑 :
这是我的实体(我不向您展示 getter setter,因为它是 +500 行但它们已经生成):
<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\ORM\Mapping\JoinColumn;
/**
* @ORM\Entity(repositoryClass="App\Repository\PropertyRepository")
*/
class Property
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
* @Assert\Type("integer")
* @var int
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
* @Assert\NotBlank
* @Assert\Choice({"Appartement", "Maison", "Garage", "Bureau", "Château", "Commerce"})
* @var string
*/
private $propertyCategory;
/**
* @ORM\Column(type="string", length=255)
* @Assert\NotBlank
* @Assert\Type("string")
* @var string
*/
private $uniqueName;
/**
* @ORM\Column(type="string", length=255)
* @Assert\NotBlank
* @Assert\Type("string")
* @var string
*/
private $address;
/**
* @ORM\Column(type="string", length=255)
* @Assert\NotBlank
* @Assert\Type("string")
* @var string
*/
private $city;
/**
* @ORM\Column(type="integer")
* @Assert\NotBlank
* @Assert\Type("integer")
* @Assert\Length(min = 5, minMessage = "Ce champ doit contenir 5 chiffres")
* @Assert\Length(max = 5, maxMessage = "Ce champ doit contenir 5 chiffres")
* @var int
*/
private $zipCode;
/**
* @ORM\Column(type="string", length=255)
* @Assert\NotBlank
* @Assert\Country
* @var string
*/
private $country;
/**
* @ORM\Column(type="integer")
* @Assert\NotBlank
* @Assert\Type("integer")
* @var string
*/
private $surfaceInSquareMeter;
/**
* @ORM\Column(type="integer")
* @Assert\NotBlank
* @Assert\Type("integer")
* @var int
*/
private $numberOfPiece;
/**
* @ORM\Column(type="text", nullable=true)
* @Assert\Type("string")
* @var string
*/
private $description;
/**
* @ORM\Column(type="string", length=255)
* @Assert\NotBlank
* @Assert\Choice({"Meublé", "Non meublé"})
* @var string
*/
private $rentalCategory;
/**
* @ORM\Column(type="float")
* @Assert\NotBlank
* @Assert\Type("float")
* @var float
*/
private $rentExcludingCharges;
/**
* @ORM\Column(type="float")
* @Assert\NotBlank
* @Assert\Type("float")
* @var float
*/
private $charges;
/**
* @ORM\Column(type="float")
* @Assert\NotBlank
* @Assert\Type("float")
* @var float
*/
private $purchasePrice;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="properties")
* @JoinColumn(name="user_property_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $userProperty;
/**
* @ORM\ManyToMany(targetEntity="App\Entity\Equipment", mappedBy="equipment")
*/
private $equipment;
/**
* @ORM\ManyToMany(targetEntity="App\Entity\Lessee", mappedBy="lessee")
*/
private $lessees;
/**
* @ORM\Column(type="string", length=255, nullable=true)
* @Assert\File(
* maxSize = "2000k",
* mimeTypes = {"application/pdf", "application/x-pdf"},
* mimeTypesMessage = "Choisisez un fichier PDF"
* )
*/
private $pdfFile;
解决方案
您是否检查过您的实体并验证此标头是否存在:
/**
* @ORM\Entity(repositoryClass="App\Repository\PropertyRepository")
*/
class Property
{
...
推荐阅读
- php - 如何使用 .htaccess 更改 url 外观但保留 php 功能?
- javascript - 分别打开 2 个链接的 Javascript
- python - Poetry install --no-dev 需要安装 Rust 吗?
- java - 有没有办法将coinbase与java集成?
- node.js - 使用 npm start 在 ios 模拟器上运行 react-native 应用程序时出错 - 无法读取未定义的属性“解析器”
- vb.net - 什么是 Office.Tools.Ribbon.RibbonControlImpl?
- asp.net - 登录会话没有被取消
- c++ - gtkmm.h 无法打开源文件(但编译时使用 pkg-config 标志)
- react-redux - 反应钩子,用 reduxForm 验证表单
- python - 解决 Code jam 2020 中的“嵌套深度”问题?