我有一个带有列的 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/