openvk/Web/Models/Repositories/Bans.php

39 lines
809 B
PHP
Raw Normal View History

<?php
declare(strict_types=1);
namespace openvk\Web\Models\Repositories;
use Chandler\Database\DatabaseConnection as DB;
use Nette\Database\Table\{ActiveRow, Selection};
use openvk\Web\Models\Entities\Ban;
class Bans
{
private $context;
private $bans;
public function __construct()
{
$this->context = DB::i()->getContext();
$this->bans = $this->context->table("bans");
}
public function toBan(?ActiveRow $ar): ?Ban
{
return is_null($ar) ? null : new Ban($ar);
}
public function get(int $id): ?Ban
{
return $this->toBan($this->bans->get($id));
}
public function getByUser(int $user_id): \Traversable
{
foreach ($this->bans->where("user", $user_id) as $ban) {
yield new Ban($ban);
}
}
}