sub
This commit is contained in:
parent
703ef3c5b1
commit
b58b92bc30
|
@ -4,7 +4,7 @@
|
|||
"minimum-stability": "stable",
|
||||
"prefer-stable": true,
|
||||
"require": {
|
||||
"php": ">=8.0.2",
|
||||
"php": ">=8.1",
|
||||
"ext-ctype": "*",
|
||||
"ext-iconv": "*",
|
||||
"doctrine/doctrine-bundle": "^2.6",
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace DoctrineMigrations;
|
||||
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
|
||||
/**
|
||||
* Auto-generated Migration: Please modify to your needs!
|
||||
*/
|
||||
final class Version20220523155141 extends AbstractMigration
|
||||
{
|
||||
public function getDescription(): string
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
// Added 'status' to INSERT
|
||||
public function up(Schema $schema): void
|
||||
{
|
||||
// this up() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('DROP INDEX IDX_E4F82A3DED5CA9E6');
|
||||
$this->addSql('CREATE TEMPORARY TABLE __temp__mer_para_sub AS SELECT id, service_id, sub_date, unsub_date, pin FROM mer_para_sub');
|
||||
$this->addSql('DROP TABLE mer_para_sub');
|
||||
$this->addSql('CREATE TABLE mer_para_sub (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, service_id INTEGER NOT NULL, sub_date DATETIME NOT NULL --(DC2Type:datetime_immutable)
|
||||
, unsub_date DATETIME DEFAULT NULL --(DC2Type:datetime_immutable)
|
||||
, pin INTEGER DEFAULT NULL, status INTEGER NOT NULL, CONSTRAINT FK_E4F82A3DED5CA9E6 FOREIGN KEY (service_id) REFERENCES mer_service (id) NOT DEFERRABLE INITIALLY IMMEDIATE)');
|
||||
$this->addSql('INSERT INTO mer_para_sub (id, service_id, sub_date, unsub_date, pin, status) SELECT id, service_id, sub_date, unsub_date, pin, 1 FROM __temp__mer_para_sub');
|
||||
$this->addSql('DROP TABLE __temp__mer_para_sub');
|
||||
$this->addSql('CREATE INDEX IDX_E4F82A3DED5CA9E6 ON mer_para_sub (service_id)');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
// this down() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('DROP INDEX IDX_E4F82A3DED5CA9E6');
|
||||
$this->addSql('CREATE TEMPORARY TABLE __temp__mer_para_sub AS SELECT id, service_id, pin, sub_date, unsub_date FROM mer_para_sub');
|
||||
$this->addSql('DROP TABLE mer_para_sub');
|
||||
$this->addSql('CREATE TABLE mer_para_sub (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, service_id INTEGER NOT NULL, pin INTEGER DEFAULT NULL, sub_date DATETIME NOT NULL --(DC2Type:datetime_immutable)
|
||||
, unsub_date DATETIME DEFAULT NULL --(DC2Type:datetime_immutable)
|
||||
)');
|
||||
$this->addSql('INSERT INTO mer_para_sub (id, service_id, pin, sub_date, unsub_date) SELECT id, service_id, pin, sub_date, unsub_date FROM __temp__mer_para_sub');
|
||||
$this->addSql('DROP TABLE __temp__mer_para_sub');
|
||||
$this->addSql('CREATE INDEX IDX_E4F82A3DED5CA9E6 ON mer_para_sub (service_id)');
|
||||
}
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace DoctrineMigrations;
|
||||
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
|
||||
/**
|
||||
* Auto-generated Migration: Please modify to your needs!
|
||||
*/
|
||||
final class Version20220523155631 extends AbstractMigration
|
||||
{
|
||||
public function getDescription(): string
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
public function up(Schema $schema): void
|
||||
{
|
||||
// this up() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('CREATE TABLE mer_be_sub (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, service_id INTEGER NOT NULL, code VARCHAR(255) DEFAULT NULL, status INTEGER NOT NULL, sub_date DATETIME NOT NULL --(DC2Type:datetime_immutable)
|
||||
, unsub_date DATETIME DEFAULT NULL --(DC2Type:datetime_immutable)
|
||||
)');
|
||||
$this->addSql('CREATE INDEX IDX_CA4C3EB8ED5CA9E6 ON mer_be_sub (service_id)');
|
||||
$this->addSql('DROP INDEX IDX_E4F82A3DED5CA9E6');
|
||||
$this->addSql('CREATE TEMPORARY TABLE __temp__mer_para_sub AS SELECT id, service_id, sub_date, unsub_date, pin, status FROM mer_para_sub');
|
||||
$this->addSql('DROP TABLE mer_para_sub');
|
||||
$this->addSql('CREATE TABLE mer_para_sub (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, service_id INTEGER NOT NULL, sub_date DATETIME NOT NULL --(DC2Type:datetime_immutable)
|
||||
, unsub_date DATETIME DEFAULT NULL --(DC2Type:datetime_immutable)
|
||||
, pin INTEGER DEFAULT NULL, status INTEGER NOT NULL, CONSTRAINT FK_E4F82A3DED5CA9E6 FOREIGN KEY (service_id) REFERENCES mer_service (id) NOT DEFERRABLE INITIALLY IMMEDIATE)');
|
||||
$this->addSql('INSERT INTO mer_para_sub (id, service_id, sub_date, unsub_date, pin, status) SELECT id, service_id, sub_date, unsub_date, pin, status FROM __temp__mer_para_sub');
|
||||
$this->addSql('DROP TABLE __temp__mer_para_sub');
|
||||
$this->addSql('CREATE INDEX IDX_E4F82A3DED5CA9E6 ON mer_para_sub (service_id)');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
// this down() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('DROP TABLE mer_be_sub');
|
||||
$this->addSql('DROP INDEX IDX_E4F82A3DED5CA9E6');
|
||||
$this->addSql('CREATE TEMPORARY TABLE __temp__mer_para_sub AS SELECT id, service_id, pin, status, sub_date, unsub_date FROM mer_para_sub');
|
||||
$this->addSql('DROP TABLE mer_para_sub');
|
||||
$this->addSql('CREATE TABLE mer_para_sub (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, service_id INTEGER NOT NULL, pin INTEGER DEFAULT NULL, status INTEGER NOT NULL, sub_date DATETIME NOT NULL --(DC2Type:datetime_immutable)
|
||||
, unsub_date DATETIME DEFAULT NULL --(DC2Type:datetime_immutable)
|
||||
)');
|
||||
$this->addSql('INSERT INTO mer_para_sub (id, service_id, pin, status, sub_date, unsub_date) SELECT id, service_id, pin, status, sub_date, unsub_date FROM __temp__mer_para_sub');
|
||||
$this->addSql('DROP TABLE __temp__mer_para_sub');
|
||||
$this->addSql('CREATE INDEX IDX_E4F82A3DED5CA9E6 ON mer_para_sub (service_id)');
|
||||
}
|
||||
}
|
|
@ -2,8 +2,11 @@
|
|||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Repository\MerBeSubRepository;
|
||||
use App\Repository\MerParaSubRepository;
|
||||
use App\Repository\MerServiceRepository;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
use App\Repository\Entity1Repository;
|
||||
|
@ -11,18 +14,38 @@ use App\Repository\Entity1Repository;
|
|||
class IndexController extends AbstractController
|
||||
{
|
||||
#[Route('/', name: 'app_index')]
|
||||
public function index(Entity1Repository $repo, MerParaSubRepository $subRepo): Response
|
||||
public function index(
|
||||
Entity1Repository $repo,
|
||||
MerParaSubRepository $paraSubRepo,
|
||||
MerBeSubRepository $beSubRepo
|
||||
): Response
|
||||
{
|
||||
// repo dummy
|
||||
$sm = $repo->getSchemaManager();
|
||||
|
||||
$sub = $subRepo->findOne();
|
||||
foreach ($paraSubRepo->findAll() as $sub) {
|
||||
dump($sub);
|
||||
dump($sub->getService());
|
||||
}
|
||||
|
||||
dump('-------------------');
|
||||
|
||||
foreach ($beSubRepo->findAll() as $sub) {
|
||||
dump($sub);
|
||||
}
|
||||
|
||||
return $this->render('index/index.html.twig', [
|
||||
'controller_name' => 'IndexController',
|
||||
'schemaManager' => $sm
|
||||
'schemaManager' => $sm,
|
||||
//'offer_id' => $sub->getService()->ge
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route('/notification/dm', name: 'notification_dm')]
|
||||
public function notificationDm(Request $request, MerServiceRepository $repo): Response
|
||||
{
|
||||
foreach ($repo->findByOfferId($request->query->get('offer_id')) as $sub) {
|
||||
dump($sub);
|
||||
}
|
||||
|
||||
return $this->render('index/notificationDm.html.twig');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,9 +3,11 @@
|
|||
namespace App\DataFixtures;
|
||||
|
||||
use App\Entity\MerBeDM;
|
||||
use App\Entity\MerBeSub;
|
||||
use App\Entity\MerParaDM;
|
||||
use App\Entity\MerParaDT;
|
||||
use App\Entity\MerParaSub;
|
||||
use App\Enum\SubStatus;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
|
||||
|
@ -13,42 +15,65 @@ class MerFixtures extends Fixture
|
|||
{
|
||||
public function load(ObjectManager $manager): void
|
||||
{
|
||||
// service1
|
||||
$tmp = new MerParaDM();
|
||||
$tmp->setMccMnc(12345)->setOfferId(221)->setProductCode('code1');
|
||||
$manager->persist($tmp);
|
||||
$ser1 = new MerParaDM();
|
||||
$ser1->setMccMnc(12345)
|
||||
->setOfferId(221)
|
||||
->setProductCode('code1');
|
||||
|
||||
// sub
|
||||
$sub = new MerParaSub();
|
||||
$sub->setService($tmp)->setPin(1122)->setSubDate(new \DateTimeImmutable('now'));
|
||||
$manager->persist($sub);
|
||||
$ser2 = new MerParaDM();
|
||||
$ser2->setMccMnc(12345)
|
||||
->setOfferId(223)
|
||||
->setProductCode('code2');
|
||||
|
||||
// service 2
|
||||
$tmp = new MerParaDM();
|
||||
$tmp->setMccMnc(12345)->setOfferId(223)->setProductCode('code2');
|
||||
$manager->persist($tmp);
|
||||
$ser3 = new MerParaDT();
|
||||
$ser3->setMccMnc(12345)
|
||||
->setServiceId('ser-vi-ce1')
|
||||
->setApiKey('api1');
|
||||
|
||||
// sub
|
||||
$sub = new MerParaSub();
|
||||
$sub->setService($tmp)->setPin(2211)->setSubDate(new \DateTimeImmutable('now'));
|
||||
$manager->persist($sub);
|
||||
$ser4 = new MerParaDT();
|
||||
$ser4->setMccMnc(12341)
|
||||
->setServiceId('ser-vi-ce2')
|
||||
->setApiKey('api2');
|
||||
|
||||
$sub = new MerParaSub();
|
||||
$sub->setService($tmp)->setSubDate(new \DateTimeImmutable('now'));
|
||||
$manager->persist($sub);
|
||||
$ser5 = new MerBeDM();
|
||||
$ser5->setMccMnc(12341)
|
||||
->setOfferId(112)
|
||||
->setActivationCode('active1');
|
||||
|
||||
// service 3
|
||||
$tmp = new MerParaDT();
|
||||
$tmp->setMccMnc(12345)->setServiceId('ser-vi-ce1')->setApiKey('api1');
|
||||
$manager->persist($tmp);
|
||||
$sub1 = new MerParaSub();
|
||||
$sub1->setService($ser1)
|
||||
->setStatus(SubStatus::ACTIVE)
|
||||
->setPin(1122)
|
||||
->setSubDate(new \DateTimeImmutable('now'));
|
||||
|
||||
$tmp = new MerParaDT();
|
||||
$tmp->setMccMnc(12341)->setServiceId('ser-vi-ce2')->setApiKey('api2');
|
||||
$manager->persist($tmp);
|
||||
$sub2 = new MerParaSub();
|
||||
$sub2->setService($ser3)
|
||||
->setStatus(SubStatus::PREREGISTERED)
|
||||
->setPin(2211)
|
||||
->setSubDate(new \DateTimeImmutable('now'));
|
||||
|
||||
$tmp = new MerBeDM();
|
||||
$tmp->setMccMnc(12341)->setOfferId(112)->setActivationCode('active1');
|
||||
$manager->persist($tmp);
|
||||
$sub3 = new MerParaSub();
|
||||
$sub3->setService($ser3)
|
||||
->setStatus(SubStatus::CANCELLED)
|
||||
->setSubDate(new \DateTimeImmutable('yesterday'))
|
||||
->setUnsubDate(new \DateTimeImmutable('now'));
|
||||
|
||||
$sub4 = new MerBeSub();
|
||||
$sub4->setService($ser5)
|
||||
->setStatus(SubStatus::REGISTERED)
|
||||
->setCode('CoDe')
|
||||
->setSubDate(new \DateTimeImmutable('now'));
|
||||
|
||||
$manager->persist($ser1);
|
||||
$manager->persist($ser2);
|
||||
$manager->persist($ser3);
|
||||
$manager->persist($ser4);
|
||||
$manager->persist($ser5);
|
||||
|
||||
$manager->persist($sub1);
|
||||
$manager->persist($sub2);
|
||||
$manager->persist($sub3);
|
||||
$manager->persist($sub4);
|
||||
|
||||
$manager->flush();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use App\Repository\MerParaSubRepository;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
||||
#[ORM\Entity]
|
||||
class MerBeSub
|
||||
{
|
||||
use MerSubBaseTrait;
|
||||
|
||||
#[ORM\Column(type: 'string', length: 255, nullable: true)]
|
||||
private $code;
|
||||
|
||||
public function getCode(): ?int
|
||||
{
|
||||
return $this->code;
|
||||
}
|
||||
|
||||
public function setCode(?string $code): self
|
||||
{
|
||||
$this->code = $code;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
|
@ -8,29 +8,11 @@ use Doctrine\ORM\Mapping as ORM;
|
|||
#[ORM\Entity(repositoryClass: MerParaSubRepository::class)]
|
||||
class MerParaSub
|
||||
{
|
||||
#[ORM\Id]
|
||||
#[ORM\GeneratedValue]
|
||||
#[ORM\Column(type: 'integer')]
|
||||
private $id;
|
||||
use MerSubBaseTrait;
|
||||
|
||||
#[ORM\Column(type: 'integer', nullable: true)]
|
||||
private $pin;
|
||||
|
||||
#[ORM\ManyToOne(targetEntity: MerService::class)]
|
||||
#[ORM\JoinColumn(nullable: false)]
|
||||
private MerService $service;
|
||||
|
||||
#[ORM\Column(type: 'datetime_immutable')]
|
||||
private $subDate;
|
||||
|
||||
#[ORM\Column(type: 'datetime_immutable', nullable: true)]
|
||||
private $unsubDate;
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getPin(): ?int
|
||||
{
|
||||
return $this->pin;
|
||||
|
@ -42,40 +24,4 @@ class MerParaSub
|
|||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getService(): ?MerService
|
||||
{
|
||||
return $this->service;
|
||||
}
|
||||
|
||||
public function setService(?MerService $service): self
|
||||
{
|
||||
$this->service = $service;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getSubDate(): ?\DateTimeImmutable
|
||||
{
|
||||
return $this->subDate;
|
||||
}
|
||||
|
||||
public function setSubDate(\DateTimeImmutable $subDate): self
|
||||
{
|
||||
$this->subDate = $subDate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getUnsubDate(): ?\DateTimeImmutable
|
||||
{
|
||||
return $this->unsubDate;
|
||||
}
|
||||
|
||||
public function setUnsubDate(?\DateTimeImmutable $unsubDate): self
|
||||
{
|
||||
$this->unsubDate = $unsubDate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use App\Enum\SubStatus;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
||||
trait MerSubBaseTrait
|
||||
{
|
||||
#[ORM\Id]
|
||||
#[ORM\GeneratedValue]
|
||||
#[ORM\Column(type: 'integer')]
|
||||
private $id;
|
||||
|
||||
#[ORM\Column(enumType: SubStatus::class)]
|
||||
private SubStatus $status;
|
||||
|
||||
#[ORM\ManyToOne(targetEntity: MerService::class)]
|
||||
#[ORM\JoinColumn(nullable: false)]
|
||||
private MerService $service;
|
||||
|
||||
#[ORM\Column(type: 'datetime_immutable')]
|
||||
private $subDate;
|
||||
|
||||
#[ORM\Column(type: 'datetime_immutable', nullable: true)]
|
||||
private $unsubDate;
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getStatus(): SubStatus
|
||||
{
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
public function setStatus(SubStatus $status): self
|
||||
{
|
||||
$this->status = $status;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getService(): ?MerService
|
||||
{
|
||||
return $this->service;
|
||||
}
|
||||
|
||||
public function setService(?MerService $service): self
|
||||
{
|
||||
$this->service = $service;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getSubDate(): ?\DateTimeImmutable
|
||||
{
|
||||
return $this->subDate;
|
||||
}
|
||||
|
||||
public function setSubDate(\DateTimeImmutable $subDate): self
|
||||
{
|
||||
$this->subDate = $subDate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getUnsubDate(): ?\DateTimeImmutable
|
||||
{
|
||||
return $this->unsubDate;
|
||||
}
|
||||
|
||||
public function setUnsubDate(?\DateTimeImmutable $unsubDate): self
|
||||
{
|
||||
$this->unsubDate = $unsubDate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
<?php
|
||||
|
||||
namespace App\Enum;
|
||||
|
||||
enum SubStatus: int
|
||||
{
|
||||
case PREREGISTERED = 1;
|
||||
case REGISTERED = 2;
|
||||
case ACTIVE = 3;
|
||||
case CANCELLED = 4;
|
||||
case EXPIRED = 5;
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
|
||||
use App\Entity\MerBeSub;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
||||
/**
|
||||
* @extends ServiceEntityRepository<MerBeSub>
|
||||
*
|
||||
* @method MerBeSub|null find($id, $lockMode = null, $lockVersion = null)
|
||||
* @method MerBeSub|null findOneBy(array $criteria, array $orderBy = null)
|
||||
* @method MerBeSub[] findAll()
|
||||
* @method MerBeSub[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
|
||||
*/
|
||||
class MerBeSubRepository extends ServiceEntityRepository
|
||||
{
|
||||
public function __construct(ManagerRegistry $registry)
|
||||
{
|
||||
parent::__construct($registry, MerBeSub::class);
|
||||
}
|
||||
|
||||
public function add(MerBeSub $entity, bool $flush = false): void
|
||||
{
|
||||
$this->getEntityManager()->persist($entity);
|
||||
|
||||
if ($flush) {
|
||||
$this->getEntityManager()->flush();
|
||||
}
|
||||
}
|
||||
|
||||
public function remove(MerBeSub $entity, bool $flush = false): void
|
||||
{
|
||||
$this->getEntityManager()->remove($entity);
|
||||
|
||||
if ($flush) {
|
||||
$this->getEntityManager()->flush();
|
||||
}
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @return MerBeSub[] Returns an array of MerBeSub objects
|
||||
// */
|
||||
// public function findByExampleField($value): array
|
||||
// {
|
||||
// return $this->createQueryBuilder('m')
|
||||
// ->andWhere('m.exampleField = :val')
|
||||
// ->setParameter('val', $value)
|
||||
// ->orderBy('m.id', 'ASC')
|
||||
// ->setMaxResults(10)
|
||||
// ->getQuery()
|
||||
// ->getResult()
|
||||
// ;
|
||||
// }
|
||||
|
||||
public function findOne(): ?MerBeSub
|
||||
{
|
||||
return $this->createQueryBuilder('m')
|
||||
->orderBy('m.id', 'ASC')
|
||||
->setMaxResults(1)
|
||||
->getQuery()
|
||||
->getOneOrNullResult()
|
||||
;
|
||||
}
|
||||
}
|
|
@ -67,7 +67,7 @@ class MerParaSubRepository extends ServiceEntityRepository
|
|||
public function findOne(): ?MerParaSub
|
||||
{
|
||||
return $this->createQueryBuilder('m')
|
||||
->orderBy('m.id', 'DESC')
|
||||
->orderBy('m.id', 'ASC')
|
||||
->setMaxResults(1)
|
||||
->getQuery()
|
||||
->getOneOrNullResult()
|
||||
|
|
|
@ -62,4 +62,14 @@ class MerServiceRepository extends ServiceEntityRepository
|
|||
// ->getOneOrNullResult()
|
||||
// ;
|
||||
// }
|
||||
|
||||
public function findByOfferId(int $offerId)
|
||||
{
|
||||
return $this->createQueryBuilder('s')
|
||||
->andWhere('s.offer_id = :offer_id')
|
||||
->setParameter('offer_id', $offerId)
|
||||
->getQuery()
|
||||
->getResult()
|
||||
;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,4 +32,6 @@
|
|||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
<p><a href="{{ path('notification_dm', {'offer_id': 112}) }}">dm notification</a></p>
|
||||
{% endblock %}
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block title %}notif dm!{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<p>check profiler output</p>
|
||||
{% endblock %}
|
Loading…
Reference in New Issue