【问题标题】:Laravel, Edit/Update specific fields via the same update method in the controllerLaravel,通过控制器中相同的更新方法编辑/更新特定字段
【发布时间】:2014-07-25 06:59:30
【问题描述】:

我有一个表单,用户可以通过它更新他的数据(姓名、姓氏、状态 ...)

在另一个页面中,我希望有一个表单,用户可以通过该表单编辑和更新 status 字段并保持其他字段不变 我应该在 UserController 中创建另一个更新函数吗?由于当前需要表单中存在其他字段。

如果我需要一个新的处理程序,我应该如何将表单操作路由到该函数?

【问题讨论】:

    标签: laravel crud


    【解决方案1】:

    我会使用另一个更新功能,比如说你的 UserController 中的updateStatus。您将在此函数中使用特定的验证器。

    如果您的用户模型中有一些这样的验证规则:

    public static $rulesUpdate = [
        'name'     => 'required',
        'lastname' => 'required',
        'status'   => 'required',
    ];
    

    我会在你的updateStatus 函数中做:

    $status = Input::get('status');
    $validatorStatus = Validator::make(['status' => $status], ['status' => User::$rulesUpdate['status']]);
    if ($validatorStatus->passes()) {
        // Your logic here, maybe something like this
        $user->status = $status;
        $user->save();
    }
    

    这里的好处是您使用相同验证规则。

    为方法创建一个新路由,例如:

    Route::put('/users/status', ['before' => 'auth', 'uses' => 'UsersController@putStatus']);
    

    【讨论】:

    • 谢谢,您指出了相同验证规则的好处。
    猜你喜欢
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多