Repository URL to install this package:
|
Version:
0.2.1 ▾
|
<?php
namespace Modules\Courses\Repositories\Eloquent;
use Modules\Core\Repositories\CoreRepository;
use Modules\Courses\Contracts\Repositories\CourseRepository;
use Modules\Courses\Entities\Course as Model;
use Modules\Courses\Repositories\Criteria\ActiveCriteria;
/**
* Class CourseRepositoryEloquent
* @package namespace App\Repositories\Eloquent;
*/
class CourseRepositoryEloquent extends CoreRepository implements CourseRepository
{
/**
* Specify Model class name
*
* @return string
*/
public function model()
{
return Model::class;
}
/**
* Boot up the repository, pushing criteria
*/
public function all($columns = ['*'])
{
$this->pushCriteria(app(ActiveCriteria::class));
return parent::all($columns);
}
public function findWithSlides($id){
$this->applyCriteria();
$this->applyScope();
$model = $this->model->with(['slides' => function($query){
/** @var \Illuminate\Database\Query\Builder $query */
$query->orderBy('order', 'asc');
}])->findOrFail($id);
$this->resetModel();
return $this->parserResult($model);
}
public function countActive()
{
return $this->pushCriteria(app(ActiveCriteria::class))->count();
}
}