【发布时间】:2019-01-16 14:45:04
【问题描述】:
现在我正在考虑在我的项目中实施政策。 所以我想要 3 种类型的角色:用户、管理员和办公室。
我有一个 Customer 类,它具有以下 CRUD 功能:
class CustomerController extends Controller
{
public function getAllCustomer()
{
return Customer::get();
}
public function addNewCustomer(Request $request)
{
$validatedData = $request->validate([
'Title' => 'required',
'Name' => 'required|max:255',
'Surname' => 'required|max:255',
'Email' => 'required',
'Phone' => 'required',
'Password' => 'required',
'dateofBirth' => 'required'
]);
return \app\model\Customer::create($request->all());
}
public function update (Request $request , Customer $id)
{
$id->update($request->all());
}
public function destroy (Customer $id)
{
$id->delete();
}
我想要的是只有管理员才能为所有客户使用 CRUD 功能。用户应该只能对自己的数据使用 CRUD 功能(因此客户只能使用自己的数据执行此操作)。
我读了这篇文章: https://code.tutsplus.com/tutorials/gates-and-policies-in-laravel--cms-29780
但我仍然不知道如何在我的项目中实现它,以及我应该使用 Gates 还是策略(似乎策略更容易,或者?)。
如果有人能给我写一个关于如何在我的工作中实现它的示例,我将非常感激。
【问题讨论】:
-
你看过官方文档吗? laravel.com/docs/5.6/authorization
-
是的,但是我没有找到适合不同角色模型的解决方案。