使用 Laravel 5.5 接收 [Illuminate\Database\Eloquent\MassAssignmentException] 电子邮件

Posted

技术标签:

【中文标题】使用 Laravel 5.5 接收 [Illuminate\\Database\\Eloquent\\MassAssignmentException] 电子邮件【英文标题】:Receiving [Illuminate\Database\Eloquent\MassAssignmentException] email using Laravel 5.5使用 Laravel 5.5 接收 [Illuminate\Database\Eloquent\MassAssignmentException] 电子邮件 【发布时间】:2018-05-09 18:34:47 【问题描述】:

我正在关注一个试图学习如何使用 Laravel5.5 的教程。在执行了将protected $fillable = array('email', 'password', 'name'); 添加到用户模型的步骤之后。

我假设设置哪些字段是可批量分配的字段?下一步是添加:

User::create(array(
    'email' => 'your@email.com',
    'password' => Hash::make('password'),
    'name' => 'John Doe'
));

我的理解是将所述用户添加到数据库中。

当我运行php artisan migrate 时,我收到[Illuminate\Database\Eloquent\MassAssignmentException] email,但我不知道为什么。我尝试添加Eloquent::unguard(),并尝试使其全部可防护。

已从可填充数组中删除电子邮件。完全摆脱了电子邮件。

每次我运行 php artisan migrate 时,错误都是一样的。

【问题讨论】:

您在哪里使用 User::create 的代码?你是用模型工厂播种的吗? 【参考方案1】:

根据您的描述,它应该可以正常工作。

所以请确保:

您正在使用有效的用户模型(也许您有 2 个并且您只在其中一个中设置了可填充)? 您没有在迁移中插入其他数据。问题很可能是其他模型而不是用户模型。

【讨论】:

我检查了用户模型,似乎有一个是空的,一个是我创建的。其他迁移正在插入数据,但不是 email 字段。似乎我正在关注的教程可能基于 Laravel 4,所以我可能需要停下来找到一个基于 5.5 的教程。 关于可填充和 MassAssignment 的想法没有改变,所以肯定有其他错误 尝试通过迁移添加假用户时出现问题。

以上是关于使用 Laravel 5.5 接收 [Illuminate\Database\Eloquent\MassAssignmentException] 电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

DB::statement();在 Laravel (5.5)

无法使用 laravel 5.5 建立 laravel 关系

Laravel 5.5 使用 artesaos/defender

作曲家自动加载 Laravel 5.5

Laravel 会话立即过期(Laravel 5.5)

Laravel 5.5 中的多字段排序