laradevsbd / repository
此包将有助于创建仓库文件
dev-main
2022-06-21 05:04 UTC
This package is auto-updated.
Last update: 2024-09-21 10:17:23 UTC
README
Laravel 仓库 是一个用于Laravel的包,用于抽象数据库层。
此包与Laravel 7.* 8.* 9.* 兼容
安装
composer require laradevsbd/repository
此操作完成后,最终步骤是添加服务提供者。打开config/app.php,并将新项添加到providers数组中。
'providers' => [
// .........................
\Laradevsbd\Repository\LaradevsbdRepositoryServiceProvider::class,
]
用法
创建一个控制台类
php artisan make:repository UserRepository
现在检查目录 App\Repositories\UserRepository.php 并添加模型类
<?php
namespace App\Repositories;
use Laradevsbd\Repository\Repositories\BaseRepository;
use App\Models\User;
class UserRepository extends BaseRepository
{
/**
* @return string
* Return the model
*/
//php artisan make:repository repositoryName
public function model()
{
return User::class;
}
public function getFieldsSearchable()
{
// TODO: Implement getFieldsSearchable() method.
}
public function store($input)
{
// TODO: Implement
}
public function update($input, $id)
{
// TODO: Implement
}
// you can create any name of method
public function inactive_user()
{
return User::query()->where('status',0)->get();
}
}
最后,将 UserRepository 实现到 UserController
<?php
namespace App\Http\Controllers;
use App\Repositories\UserRepository;
use Illuminate\Http\Request;
class UserController extends Controller
{
/** @var UserRepository */
private $userRepository;
/**
* Create a new controller instance.
*
* @param UserRepository $userRepository
*/
public function __construct(UserRepository $userRepository)
{
$this->userRepository = $userRepository;
}
public function index()
{
$users=$this->userRepository->all();
return view('users.index');
}
public function store(Request $request)
{
return $this->userRepository->store($request->all());
}
public function update($id,Request $request)
{
return $this->userRepository->update($request->all(),$id);
}
public function inactive_users()
{
return $this->userRepository->inactive_user();
}
}
可用方法
以下方法可用
public function all($columns = array('*'))
public function paginate($perPage = 1, $columns = array('*'));
public function create(array $data)
public function update(array $data, $id, $attribute = "id")
public function delete($id)
public function find($id, $columns = array('*'))
示例
创建新用户
$this->userRepository->create(Input::all());
更新用户
$this->userRepository->update(Input::all(),$id);
查找用户
$this->userRepository->find($id);
删除用户
$this->userRepository->delete($id);
联系方式
如果您有任何问题或建议,请在GitHub上提交问题。
许可
此仓库内容遵循 MIT许可
访问我们的网站
结论
我试图通过使用仓库来帮助其他工匠完成他们的项目,他们想要使用它来实现Laravel约定。这使得应用程序更容易维护。