У меня есть две сущности (Пользователь и Продукт) с отношением OneToMany.Я хочу получить все сущности Продукта, связанные с конкретным Пользователем, отфильтровав их с помощью поля «Закончено».Я опубликую соответствующую информацию об этих организациях:
Объект пользователя:
/**
* @ORM\Entity(repositoryClass="App\Repository\UserRepository")
*/
class User implements UserInterface
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Product", mappedBy="user")
*/
private $products;
....
Объект продукта:
/**
* @ORM\Entity(repositoryClass="App\Repository\Productepository")
*/
class Product
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="products")
* @ORM\JoinColumn(nullable=false)
*/
private $user;
/**
* @ORM\Column(type="boolean")
*/
private $finished;
....
Я использую следующий код для фильтрации своих продуктов, но есть ли другой, более эффективный способ сделать это?
$user = $this->getUser();
$products = $user->getProducts();
$filtered = [];
foreach ($products as $product){
if(!$product->getFinished()){
$filtered[] = $product;
}
}
Спасибо за вашу помощь