Viewing file: Repository.php (2.95 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Webkul\Core\Eloquent;
use Prettus\Repository\Contracts\CacheableInterface; use Prettus\Repository\Eloquent\BaseRepository; use Prettus\Repository\Traits\CacheableRepository;
abstract class Repository extends BaseRepository implements CacheableInterface { use CacheableRepository;
/** * Find data by field and value * * @param string $field * @param string $value * @param array $columns * @return mixed */ public function findOneByField($field, $value = null, $columns = ['*']) { $model = $this->findByField($field, $value, $columns = ['*']);
return $model->first(); }
/** * Find data by field and value * * @param string $field * @param string $value * @param array $columns * @return mixed */ public function findOneWhere(array $where, $columns = ['*']) { $model = $this->findWhere($where, $columns);
return $model->first(); }
/** * Find data by id * * @param int $id * @param array $columns * @return mixed */ public function find($id, $columns = ['*']) { $this->applyCriteria(); $this->applyScope(); $model = $this->model->find($id, $columns); $this->resetModel();
return $this->parserResult($model); }
/** * Find data by id * * @param int $id * @param array $columns * @return mixed */ public function findOrFail($id, $columns = ['*']) { $this->applyCriteria(); $this->applyScope(); $model = $this->model->findOrFail($id, $columns); $this->resetModel();
return $this->parserResult($model); }
/** * Count results of repository * * @param string $columns * @return int */ public function count(array $where = [], $columns = '*') { $this->applyCriteria(); $this->applyScope();
if ($where) { $this->applyConditions($where); }
$result = $this->model->count($columns); $this->resetModel(); $this->resetScope();
return $result; }
/** * @param string $columns * @return mixed */ public function sum($columns) { $this->applyCriteria(); $this->applyScope();
$sum = $this->model->sum($columns); $this->resetModel();
return $sum; }
/** * @param string $columns * @return mixed */ public function avg($columns) { $this->applyCriteria(); $this->applyScope();
$avg = $this->model->avg($columns); $this->resetModel();
return $avg; }
/** * @return mixed */ public function getModel($data = []) { return $this->model; }
/** * @throws RepositoryException */ public function resetModel() { $this->makeModel();
return $this; } }
|