用laravel5更新用户头像

时间:2017-01-31 02:07:06

标签: laravel avatar

从它的外观来看,我似乎非常逻辑,但我错过了一些东西,它不起作用,没有任何改变!

这是我的个人资料控制器文件:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Auth;
use Image;

class ProfileController extends Controller
{
    public function profile()
    {
        $user = Auth::user();

        return view('profile')->with('user', $user);
    }

    public function edit()
    {
        $user = Auth::user();

        return view('edit')->with('user', $user);
    }

    public function update(Request $request)
    {
        if($request->hasFile('avatar'))
        {
            $avatar = $request->file('avatar');

            $filename = time().'.'.$avatar->getClientOriginalExtension();

            Image::make($avatar)->resize(300, 300)->save(public_path('/uploads/users_avatars/'.$filename));
            $user = Auth::user();

            $user->avatar = $filename;

            $user->save();
        }
        return redirect('profile')->with('user', Auth::user());
    }
}

这是我的edit.blade.php

@extends('layouts.app')
@section('content')
    <div class="col-md-6">
        {!! Form::model($user, ['method'=>'PATCH', 'action'=>'ProfileController@update', 'file'=>'true']) !!}

        <div class="form-group">
            {!! Form::label('name', 'Name') !!}
            {!! Form::text('name', null, ['class'=>'form-control']) !!}
        </div>

        <div class="form-group">
            {!! Form::label('email', 'Email') !!}
            {!! Form::email('email', null, ['class'=>'form-control']) !!}
        </div>

        <div class="form-group">
            {!! Form::label('number', 'Phone') !!}
            {!! Form::text('number', null, ['class'=>'form-control']) !!}
        </div>

        <div class="form-group col-md-5">
            {!! Form::label('avatar', 'Avatar') !!}
            {!! Form::file('avatar', ['class'=>'form-control']) !!}
        </div><br><br><br><br>

        <div class="form-group">
            {!! Form::submit('Update', null, ['class'=>'btn btn-primary']) !!}
        </div>

    {!! Form::close() !!}
    </div>
@stop

但是当我编辑用户时,它不会改变..plz help

1 个答案:

答案 0 :(得分:1)

使用Laravel HTML Collective中的Form时,您似乎犯了一个错误。你应该使用“files”=&gt;是而不是“file”=&gt;真

{!! Form::model($user, ['method'=>'PATCH', 'action'=>'ProfileController@update', 'file'=>'true']) !!}