1. Go to this page and download the library: Download ykaej/simple-repository library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ykaej / simple-repository example snippets
namespace App\Repositories\Eloquent;
use Ykaej\Repository\Eloquent\BaseRepository;
use App\Models\Post;
class PostRepository extends BaseRepository
{
public function model()
{
return Post::class;
}
}
namespace App\Http\Controllers;
use App\Repositories\Eloquent\PostRepository;
class PostController extends Controller
{
protected $post;
public function __construct(PostRepository $post)
{
$this->post = $post;
}
public function index()
{
$this->post->all();
}
}
public function all($columns = ['*']); //获取所有记录
public function paginate($limit = null, $columns = ['*']); //分页, 默认可以再 `repository.php` 中调
public function find($id, $columns = ['*']); //按id查找
public function findOrFail($id, $columns = ['*']); //按id查找
public function findByField($field, $value = null, $columns = ['*']); //按指定字段查找
public function findWhere(array $where, $columns = ['*']); //按多个条件查找
public function findWhereIn($field, array $values, $columns = ['*']);
public function findWhereNotIn($field, array $values, $columns = ['*']);
public function create(array $attributes); //创建一条数据
public function update(array $attributes, $id); //修改一条数据
public function updateBatch(array $multipleData); //批量修改
public function delete($id); //删除
public function forceDelete(); //永久删除
public function deleteWhere(array $where); //按条件删除
public function deleteWhereIn($field, array $values);
public function increment(string $name, int $amount = 1);
public function decrement(string $name, int $amount = 1);
public function has($relation); //数据关联
public function with($relations); //数据关联
public function withCount($relations); //关联数据计数
public function whereHas($relation, $closure); //关联查找
public function orderBy($column, $direction = 'asc');
public function where($field, $condition, $value = null, $boolean = 'and');
public function whereIn($field, array $values);
namespace App\Repositories\Criteria;
use Ykaej\Repository\Contracts\RepositoryInterface;
use Ykaej\Repository\Criteria\Criteria;
class UnHiddenCriteria extends Criteria
{
public function apply($model, RepositoryInterface $repository)
{
return $model->where('is_hidden','F');
}
}
namespace App\Http\Controllers;
use App\Repositories\Eloquent\PostRepository;
use App\Repositories\Criteria\UnHiddenCriteria;
class PostController extends Controller
{
protected $post;
public function __construct(PostRepository $post)
{
$this->post = $post;
}
public function index()
{
$this->post->pushCriteria(new UnHiddenCriteria());
$this->post->all();
}
}
`PostRepository`
public function boot()
{
$this->pushCriteria(new UnHiddenCriteria());
}