更新用户头像profil Laravel 4.2

时间:2016-09-25 15:31:46

标签: laravel laravel-4 crud

我对用户的更新头像pic有一点问题。

我有一个用于Image的多态关系表,当我更新我的用户个人资料的信息并在我的数据库中上传新的头像时,他创建了一个新条目,并没有更新我的表图像的当前ID。

表格图像ID |路径| Imageable_id | imageable_type | created_at

我的UsersController方法更新

public function update($id){

    $rules =[
        /*'lastname' => 'min:3|string',
        'firstname' => 'min:3|string',
        'username'=> 'min:4|unique:users',
        'mail'    => ' email|unique:users',
        'birthday' => 'date_format:d-m-Y|before:today',
        'country'=>'min:3',
        'type_street'=>'min:3',
        'number'=>'min:1|numeric',
        'street'=>'min:4|string',
        'complementary_street'=>'min:2|string',
        'town'=>'min:2|string',
        'zip'=>'min:4|numeric',
        'phone_home'=>'min:10|numeric',
        'phone_mobile'=>'min:10|numeric',
        'image_path'=>'image|max:1000|mimes:jpeg,jpg,png',*/
    ];

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

    if($validator->fails()){
        return Redirect::to('/profil/'.$id)
            ->with('alert_error','Merci de corriger les erreurs');

    }else{
        $user = User::find($id);

        $user->lastname     =   Input::get('lastname');
        $user->firstname    =   Input::get('firstname');
        $user->username     =   Input::get('username');
        $user->mail         =   Input::get('mail');
        $user->birthday     =   Input::get('birthday');
        $user->adresse->type_street  =   Input::get('type_street');
        $user->adresse->number       =   Input::get('number');
        $user->adresse->street       =   Input::get('street');
        $user->adresse->complementary_street       =   Input::get('complementary_street');
        $user->adresse->town         =   Input::get('town');
        $user->adresse->zip          =   Input::get('zip');
        $user->adresse->country      =   Input::get('country');
        $user->adresse->phone_home      =   Input::get('phone_home');
        $user->adresse->phone_mobile      =   Input::get('phone_mobile');

        if(Input::hasFile('avatar')){
            $avatar = Image::find($id);

            $file = Input::file('avatar');
            $name = time().'-'.$file->getClientOriginalName();

            $file = $file->move('img/avatar/', $name);
            $input['path'] = 'img/avatar/'.$name;
            $input['imageable_id'] = $user->id;
            $input['imageable_type'] = 'User';

            $avatar = new Image($input);
            $avatar->save();
        }

        $user->adresse->save();

        return Redirect::to('/profil/'.$id)
            ->with('alert_success','Modification sauvegardé avec succès');

    }
}

你能帮我解决这个问题吗?我不明白为什么没有更新我的参赛作品的当前ID并创建新的。

感谢的

1 个答案:

答案 0 :(得分:0)

您使用新实例$avatar = Image::find($id);

覆盖了您的查找$avatar = new Image($input);