【问题标题】:Laravel 4 eloquent Mass assignment error in fillableLaravel 4 eloquent 可填充的质量分配错误
【发布时间】:2013-06-08 05:37:42
【问题描述】:

我目前正在学习L4 的口才,我遇到了这个集体作业。我会按照说明进行操作,并且我知道您需要设置您的 $fillable 以使用 create 方法,但我仍然在数据库中收到一个空白行。这是我的代码:

型号:

class User extends Eloquent  
{
    protected $fillable = array('email','pwd','active','name');
}

控制器:

$user = new User;
$add = array(
    'name'=>Input::get('custname'),
    'active'=>1,
    'pwd'=>Hash::make(Input::get('pwd')),
    'email'=>Input::get('email')
);

return var_dump($user->create($add));

我也做过: 控制器

$add = array(
'name'=>Input::get('custname'),
'active'=>1,
'pwd'=>Hash::make(Input::get('pwd')),
'email'=>Input::get('email')
);

return var_dump(User::create($add));

但还是一样的结果。

【问题讨论】:

  • 使用新用户创建模型时是否有效。例如.... $user = 新用户; $用户->名称;等等等等 $user->save()
  • 是的,它适用于那种方法。
  • hmmm,所以它实际上是在向数据库中输入一个新行,但它只是空的? created_at 时间戳是否已填满?
  • 是的。这是我的错误:SQLSTATE [23000]:完整性约束违规:1062 键“users_email_unique”的重复条目“”(SQL:插入users(updated_at,created_at)值(?,?))(绑定: 数组 (0 => '2013-06-08 07:38:07', 1 => '2013-06-08 07:38:07', ))

标签: php laravel laravel-4 eloquent


【解决方案1】:

有一个错误导致此问题,请参阅https://github.com/laravel/framework/issues/1548 现在应该修复了,运行composer update获取最新版本的laravel/framework

【讨论】:

    【解决方案2】:

    是的,对于新版本,您可以使用公共或受保护的关键字。

    简单使用这个:

    protected $fillable = [‘email’, ‘pwd’,’active’,’name’];
    

    如果您正在使用其他模型,您也可以指定表名:

    public $table = ‘users’
    

    在项目目录的根目录上运行 composer update 后工作正常。

    【讨论】:

      猜你喜欢
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      • 2014-02-07
      • 1970-01-01
      相关资源
      最近更新 更多