PHP code example of verclam / smart-fetch-bundle
1. Go to this page and download the library: Download verclam/smart-fetch-bundle library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
verclam / smart-fetch-bundle example snippets
#[Route('{id}/user', name: 'user_get',
class: User::class,
joinEntities:
[
'articles',
'articles.comments',
'articles.categories',
'comments.likedBy'
],
argumentName: 'user'
)]
public function index(User $user): Response
{
return $this->render('user/get.html.twig', [
'user' => $user,
]);
}
#[Route('{id}/user', name: 'user_get', Fetch(
queryName: 'id',
joinEntities:
[
'articles',
'articles.comments',
'articles.categories',
'comments.likedBy'
],
)] User $user
): Response
{
return $this->render('user/get.html.twig', [
'user' => $user,
]);
}
// ... other properties
#[ORM\Column(length: 255)]
private ?string $firstname = null;
#[ORM\Column(length: 255)]
private ?string $lastname = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE)]
private ?\DateTimeInterface $birthDate = null;
#[ORM\OneToMany(mappedBy: 'createdBy', targetEntity: Article::class)]
private Collection $articles;
#[ORM\OneToMany(mappedBy: 'createdBy', targetEntity: Comment::class)]
private Collection $comments;
#[ORM\ManyToMany(targetEntity: Comment::class, mappedBy: 'likedBy')]
private Collection $likedComments;
// ... other properties
#[ORM\Column(length: 255)]
private ?string $title = null;
#[ORM\Column(type: Types::TEXT)]
private ?string $content = null;
#[ORM\ManyToOne(inversedBy: 'articles')]
#[ORM\JoinColumn(nullable: false)]
private ?User $createdBy = null;
#[ORM\ManyToMany(targetEntity: Category::class, inversedBy: 'articles')]
private Collection $categories;
#[ORM\OneToMany(mappedBy: 'article', targetEntity: Comment::class)]
private Collection $comments;
// ... other properties
#[ORM\Column(type: Types::TEXT)]
private ?string $content = null;
#[ORM\ManyToOne(inversedBy: 'comments')]
#[ORM\JoinColumn(nullable: false)]
private ?User $createdBy = null;
#[ORM\ManyToOne(inversedBy: 'comments')]
#[ORM\JoinColumn(nullable: false)]
private ?Article $article = null;
#[ORM\ManyToMany(targetEntity: User::class, inversedBy: 'likedComments')]
private Collection $likedBy;
// ... other properties
#[ORM\Column(length: 255)]
private ?string $name = null;
#[ORM\ManyToMany(targetEntity: Article::class, mappedBy: 'categories')]
private Collection $articles;
#[Route('{id}/user', name: 'user_get', onse
{
return $this->render('user/show.html.twig', [
'user' => $user,
]);
}
#[Route('{id}/user', name: 'user_get',
class: User::class,
joinEntities:
[
'articles',
'articles.comments',
'articles.categories',
'comments.likedBy'
],
argumentName: 'user'
)]
public function index(User $user): Response
{
return $this->render('user/get.html.twig', [
'user' => $user,
]);
}
#[Route('{id}/user', name: 'user_get', Fetch(
queryName: 'id',
joinEntities:
[
'articles',
'articles.comments',
'articles.categories',
'comments.likedBy'
],
)] User $user
): Response
{
return $this->render('user/get.html.twig', [
'user' => $user,
]);
}