使用 laravel5 更新用户头像

update user avatar with laravel5

在我看来,它似乎非常合乎逻辑,但我遗漏了一些东西,它不起作用,没有任何变化!

这是我的配置文件控制器文件:

<?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

您在使用来自 Laravel HTML Collective 的表单时似乎犯了一个错误。您应该使用 "files" => true 而不是 "file" => true

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