仅在表单值存在时更新字段

迈克尔·帕斯夸隆

我使用这样的表单模型绑定,并使用fill()和save()方法更新数据库。

{{ Form::model($account) }}
  {{ Form::text('name', null, array('class'=>'class')) }}
  {{ Form::text('email', null, array('class'=>'class')) }}
  {{ Form::password('password', array('class'=>'class')) }}
  {{ Form::password('password_confirmation', array('class'=>'class')) }}
{{ Form::close() }}

这会触发我的editAccount控制器方法:

$rules = array(
  'name' => array('required'),
  'email' => array('required'),
  'password' => array('confirmed')
);

$validator = Validator::make(Input::all(), $rules);

if ($validator->fails())
{
 // Redirect
}

// Save to DB
$account->fill(Input::all());
$account->save();

效果很好,但是如果未提供密码(因为用户不想更新/修改密码),则在数据库中将密码字段设置为null。因此,如果通过表单提供新的密码值,我只希望密码字段更新。

我知道我可以执行以下操作:

// Set the fields manually
$account->name = Input::get('name');
$account->email = Input::get('email');

// Only update the password field if a value is supplied
if (Input::get('password')) {
    $account->password = Input::get('password');
}
$account->save();

但是我想知道是否有更清洁的方法来处理此问题?就像Laravel / Eloquent中的UpdateOnlyIfValueExists()方法一样。

air

使用Input::only('foo', 'bar')将仅获取完成请求所需的值-而不是使用Input::all()

但是,如果输入中不存在'foo'或'bar',则该键的值将为null

$input = Input::only('foo', 'bar');
var_dump($input);

// Outputs
array (size=2)
  'foo' => null
  'bar' => null

要以一种干净的方式进行过滤,请使用带有null值的任何值

$input = array_filter($input, 'strlen');

在您的示例中,它将替换为: $account->fill(Input::all());

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

仅在表单值存在时更新字段

来自分类Dev

PHP:仅在存在替换项时才更新字段。如果没有,保持原状

来自分类Dev

SQL语句仅在值大于当前值时才更新字段

来自分类Dev

在注册表单中为“新字段”添加的值未保存在Spree中

来自分类Dev

通过更新字段删除值

来自分类Dev

用多行更新字段值

来自分类Dev

仅在为参数提供值时更新行字段 (SQL)

来自分类Dev

SQL:仅在满足条件的情况下更新字段

来自分类Dev

角度表单仅在表单有效时获取字段值

来自分类Dev

表单字段值未在更新时发送

来自分类Dev

表单字段值未在更新时发送

来自分类Dev

如何根据Google表单的下拉值更新字段?

来自分类Dev

使用表单创建yii2时另一个表中的更新字段出了点问题

来自分类Dev

仅当游标具有字段时,MongoDB更新字段

来自分类Dev

如何仅在用户更新字段时调用函数,而不是在动态更新字段时调用函数

来自分类Dev

Django:在“更新”视图中更新字段的值

来自分类Dev

MySQL插入的更新字段...在重复密钥更新时

来自分类Dev

JSON文件-Java:编辑/更新字段值

来自分类Dev

自定义useForm Hook不会更新字段值

来自分类Dev

如何在mongodb中全局更新字段值

来自分类Dev

SQL Server 更新字段最大值数据子集

来自分类Dev

MVC 核心选择标签不更新字段值

来自分类Dev

如何通过 1 个 Laravel 更新字段的值

来自分类Dev

与它连接的每个值的 SQL 更新字段

来自分类Dev

MySQL在插入数据时自动更新字段

来自分类Dev

仅当表中的SQL更新字段为空时

来自分类Dev

在ACF中更新字段时插入新行

来自分类Dev

使用saveField更新字段时验证不起作用

来自分类Dev

MySQL在插入数据时自动更新字段

Related 相关文章

热门标签

归档