【问题标题】:Laravel Conditional Mass-AssignmentLaravel 条件质量分配
【发布时间】:2014-09-29 18:37:48
【问题描述】:

批量赋值调用User->update($data)时,是否可以只设置传入的用户密码?

查看:

<form>
    <input type="text" name="name">
    <input type="text" name="email">
    <input type="password" name="password">
    <input type="submit">
</form>

型号:

<?php
class User extends Eloquent {            

    public static $rules = [
        'name' => 'required:max:32',
        'email' => 'required|max:128'
        'password' => 'min:8|max:128'
    ];

    // Allow mass-assignment for:
    protected $fillable = ['name', 'email', 'password'];

    // The attributes excluded from the model's JSON form.         
    protected $hidden = ['password', 'remember_token'];

}

控制器:

class UsersController extends BaseController {

    public function update($id)
    {
        $user = User::findOrFail($id);    
        $validator = Validator::make($data = Input::all(), User::$rules);

        if ($validator->fails())
            return Redirect::back()->withErrors($validator)->withInput();

        $user->update($data); // How do I only update password if password was passed in?
    }
}

【问题讨论】:

  • $user-&gt;password(Input::get('password')); $user-&gt;save();

标签: php laravel laravel-4 eloquent mass-assignment


【解决方案1】:

你应该使用:

$user->password = Hash::make(Input::get('password')); 

$user->save();

代替:

$user->update($data);

仅更新用户密码。

【讨论】:

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