我有一个带有列的 Users 表的应用程序: id|name|email|is_admin 。我希望管理员能够将其他用户设置为管理员。

models/User.php 中,我防止批量分配:

protected $fillable = ['name', 'email'];

Laravel 4 Role Based Mass Assignment 得出的结论是 Laravel 没有这样的功能。

我的问题是, 什么是可行的解决方法 ?如何只允许管理员更新我的数据库中的“is_admin”列?

最佳答案

扩展您的用户模型以创建没有批量分配保护的仅限管理员版本。

在新类中,覆盖 $fillable 属性:

class UnprotectedUser extends User
{
    protected $fillable = [<all fields>];
}

然后在特定于管理员的代码中使用新模型:
$user = UnprotectedUser::create($arrayOfAllFields);

请务必在尽可能多的地方使用原始类,以便您可以继续利用批量分配保护。

关于php - 管理员的 Laravel 批量分配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26068085/

10-09 00:49
查看更多