Fixes nette3
This commit is contained in:
@@ -4,6 +4,8 @@ namespace App\Model\Database\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use App\Model\Database\Entity\Attributes\TId;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
|
||||
/**
|
||||
* @ORM\Entity
|
||||
@@ -17,14 +19,14 @@ class Dictionary extends AbstractEntity
|
||||
{
|
||||
$this->name = $name;
|
||||
$this->fullName = $fullname;
|
||||
$this->translations = new \Doctrine\Common\Collections\ArrayCollection();
|
||||
$this->translations = new ArrayCollection();
|
||||
}
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="App\Model\Database\Entity\Translation", mappedBy="dictionary", cascade={"persist"})
|
||||
* @var Article[]|\Doctrine\Common\Collections\ArrayCollection
|
||||
* @var Collection&iterable<Translation>
|
||||
*/
|
||||
protected $translations;
|
||||
protected Collection $translations;
|
||||
|
||||
public function getTranslations()
|
||||
{
|
||||
@@ -33,14 +35,16 @@ class Dictionary extends AbstractEntity
|
||||
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Language", inversedBy="lang1_dicionaries")
|
||||
* @ORM\ManyToOne(targetEntity="Language", inversedBy="dictionaries1")
|
||||
* @ORM\JoinColumn(name="lang1_id", referencedColumnName="id")
|
||||
*/
|
||||
protected $lang1;
|
||||
protected ?Language $lang1;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Language", inversedBy="lang2_dicionaries")
|
||||
* @ORM\ManyToOne(targetEntity="Language", inversedBy="dictionaries2")
|
||||
* @ORM\JoinColumn(name="lang2_id", referencedColumnName="id")
|
||||
*/
|
||||
protected $lang2;
|
||||
protected ?Language $lang2;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string")
|
||||
|
||||
@@ -4,6 +4,7 @@ namespace App\Model\Database\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use App\Model\Database\Entity\Attributes\TId;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
|
||||
/**
|
||||
* @ORM\Entity
|
||||
@@ -40,14 +41,16 @@ class Language extends AbstractEntity
|
||||
}
|
||||
|
||||
/*
|
||||
* @var Collection&iterable<Dictionary>
|
||||
* @ORM\OneToMany(targetEntity="Dictionary", mappedBy="language")
|
||||
*/
|
||||
protected $dictionaries1;
|
||||
protected Collection $dictionaries1;
|
||||
|
||||
/*
|
||||
* @var Collection&iterable<Dictionary>
|
||||
* @ORM\OneToMany(targetEntity="Dictionary", mappedBy="language")
|
||||
*/
|
||||
protected $dictionaries2;
|
||||
protected Collection $dictionaries2;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -26,16 +26,94 @@ class Term extends AbstractEntity
|
||||
*/
|
||||
protected $dictionary;
|
||||
|
||||
/**
|
||||
* Get id
|
||||
*
|
||||
* @return integer
|
||||
/**
|
||||
* @ORM\Column(type="string")
|
||||
*/
|
||||
public function getId()
|
||||
protected $string1;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string")
|
||||
*/
|
||||
protected $string2;
|
||||
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Suffix")
|
||||
*/
|
||||
protected $suffix1;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Suffix")
|
||||
*/
|
||||
protected $suffix2;
|
||||
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="DictType")
|
||||
*/
|
||||
protected $type;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToMany(targetEntity="Pronunciation", inversedBy="terms")
|
||||
* @ORM\JoinTable(name="terms_pronunciations")
|
||||
*/
|
||||
protected $pronunciations;
|
||||
|
||||
public function setType(DictType $type)
|
||||
{
|
||||
return $this->id;
|
||||
$this->type = $type;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string",nullable=true)
|
||||
*/
|
||||
protected $member;
|
||||
|
||||
public function setMember($member)
|
||||
{
|
||||
$this->member = $member;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getMember()
|
||||
{
|
||||
return $this->member;
|
||||
}
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="smallint",nullable=true)
|
||||
*/
|
||||
protected $order2;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="json_array",nullable=true)
|
||||
*/
|
||||
protected $flags;
|
||||
|
||||
public function getFlags()
|
||||
{
|
||||
return $this->flags;
|
||||
}
|
||||
|
||||
public function setFlags($flags)
|
||||
{
|
||||
$this->flags = $flags;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getOrder2()
|
||||
{
|
||||
return $this->order2;
|
||||
}
|
||||
|
||||
public function setOrder2($order2)
|
||||
{
|
||||
$this->order2 = $order2;
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
57
app/model/Database/Repository/Advanced/TermsQuery.php
Normal file
57
app/model/Database/Repository/Advanced/TermsQuery.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php declare(strict_types = 1);
|
||||
|
||||
namespace App\Model\Database\Repository;
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use App\Model\Database\Entity\Dictionary;
|
||||
|
||||
class TermsQuery extends EntityRepository
|
||||
{
|
||||
|
||||
private Dictionary $dictionary;
|
||||
private String $string;
|
||||
private Int $direction;
|
||||
private String $clen;
|
||||
|
||||
public function __construct(Dictionary $dict,String $string,Int $direction = 1)
|
||||
{
|
||||
$this->dictionary = $dict;
|
||||
$this->string = $string;
|
||||
$this->direction = $direction;
|
||||
}
|
||||
|
||||
public function withClen(String $clen)
|
||||
{
|
||||
if ($clen != null && $clen != '')
|
||||
$this->clen = $clen;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches all records like $key => $value pairs
|
||||
*
|
||||
* @param mixed[] $criteria
|
||||
* @param mixed[] $orderBy
|
||||
* @return mixed[]
|
||||
*/
|
||||
protected function doCreateQuery()
|
||||
{
|
||||
$query = $this->createQueryBuilder('t')->select('t')
|
||||
->addSelect('s1')
|
||||
->addSelect('s2')
|
||||
->leftJoin('t.suffix1','s1')
|
||||
->leftJoin('t.suffix2','s2');
|
||||
if ($this->direction == 1) {
|
||||
$query->where('t.string1 LIKE :str')->setParameter('str',$this->string."%");
|
||||
$query->orderBy('t.string1,t.id','ASC');
|
||||
} else if ($this->direction == 2) {
|
||||
$query->where('t.string2 LIKE :str')->setParameter('str', $this->string."%");
|
||||
$query->orderBy('t.string2','ASC');
|
||||
$query->addOrderBy('t.order2','ASC');
|
||||
}
|
||||
$query->andWhere('t.dictionary = :dict')->setParameter(':dict',$this->dictionary->id);
|
||||
if ($this->clen)
|
||||
$query->andWhere('t.member LIKE :clen')->setParameter('clen','%'.$this->clen.'%');
|
||||
|
||||
return $query;
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace App\Model\Database\Repository;
|
||||
|
||||
use App\Model\Database\Entity\Translation;
|
||||
|
||||
/**
|
||||
* @method Translation|NULL find($id, ?int $lockMode = NULL, ?int $lockVersion = NULL)
|
||||
* @method Translation|NULL findOneBy(array $criteria, array $orderBy = NULL)
|
||||
@@ -12,5 +13,8 @@ use App\Model\Database\Entity\Translation;
|
||||
*/
|
||||
class TranslationRepository extends AbstractRepository
|
||||
{
|
||||
|
||||
public function findOneByEmail(string $email): ?Translation
|
||||
{
|
||||
return $this->findOneBy(['email' => $email]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,11 @@ namespace App\Model\Database;
|
||||
|
||||
use App\Model\Database\Entity\User;
|
||||
use App\Model\Database\Entity\Translation;
|
||||
use App\Model\Database\Entity\Term;
|
||||
use App\Model\Database\Entity\TermFlag;
|
||||
use App\Model\Database\Entity\Pronunciation;
|
||||
use App\Model\Database\Entity\DictType;
|
||||
use App\Model\Database\Entity\Dictionary;
|
||||
use App\Model\Database\Repository\UserRepository;
|
||||
use App\Model\Database\Repository\TranslationRepository;
|
||||
use App\Model\Database\Repository\TermRepository;
|
||||
|
||||
Reference in New Issue
Block a user