首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5多形式验证规则

Laravel 5多形式验证规则
EN

Stack Overflow用户
提问于 2016-02-18 02:57:14
回答 1查看 582关注 0票数 0

所以我在一页上有三张表格。一种是更改用户图片,另一种是更新个人信息,最后一种形式是设置一个新密码。,我这里的问题是,即使我试图更新一些信息,(第二种形式),但在密码和密码确认字段中也会出现验证错误。

我提出了两项请求:

UserEditRequest

代码语言:javascript
复制
class UserEditRequest extends Request
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'firstname' => 'required',
            'lastname' => 'required'
        ];       
    }
}

UserUpdatePasswordRequest

代码语言:javascript
复制
class UserUpdatePasswordRequest extends Request
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'password' => 'required|confirmed|min:6',
            'password_confirmation' => 'required|min:6',
        ];      
    }
}

updatePassword内部UserController

代码语言:javascript
复制
public function updatePassword(UserUpdatePasswordRequest $request, $id)
{
    $user = User::findOrFail($id);
    $user->password = bcrypt($request->get('password'));
    $user->save();

    return redirect()->route('user.edit',$id)->with('success','Password changed.');
}

postEdit,在这里,我处理个人细节和化身更改:

代码语言:javascript
复制
public function postEdit(UserEditRequest $request, $id)
{
    dd($request->all());
    $user = User::findOrFail($id);

    if($request->get('avatar'))
    {
        $destinationPath = public_path() . '/avatars/' . $user->id . '/';
        $fileName = $user->id . '.' . $request->file('avatar')->getClientOriginalExtension();
        $request->file('avatar')->move($destinationPath, $fileName);
        $user->avatar = 'avatars/' . $user->id . '/' . $fileName;
        $user->save();
        return redirect()->route('user.edit',$id)->with('success','User avatar modified.');
    }
    $user->fill($request->input())->save();

    return redirect()->route('user.edit',$id)->with('success','User details modified.');
}

加快我的路线:

代码语言:javascript
复制
Route::group(['prefix' => 'user', 'as' => 'user.'], function () {

        Route::get('profile/{userid}', ['as' => 'edit', 'uses' => 'UserController@getEdit']);
        Route::post('profile/{userid}', ['as' => 'edit', 'uses' => 'UserController@postEdit']);
        Route::post('profile/{userid}', ['as' => 'updatepassword', 'uses' => 'UserController@updatePassword']);

    });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-18 03:53:45

尝试区分postEdit和updatePassword控制器操作的路由

代码语言:javascript
复制
Route::post('profile/{userid}', ['as'=>'edit', 'uses'=>'UserController@postEdit']);  
Route::post('profile/password/{userid}', ['as'=>updatepassword', 'uses'=>'UserController@updatePassword']);  

对于两个不同的控制器操作使用相同的路径是行不通的。我的意思是,当表单操作=‘/profile/id’方法=‘post’时,路由器如何确定要调用哪个控制器操作?因此,您需要区分路线。希望你能搞定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35471978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档