在非对象Laravel上调用成员函数create()

时间:2014-09-04 12:46:15

标签: php file-upload laravel image-uploading

我是Laravel的初学者。我有两种登录验证类型;使用Facebook API并使用您自己的电子邮件。 每当我使用自己的电子邮件登录时上传图像,我都会收到此错误

  

{"错误" {"类型":" Symfony的\元器件\调试\异常\ FatalErrorException""消息":& #34;在非对象","文件"上调用成员函数create():" C:\ base_app_folder \ app \ controllers \ OnboardingController.php",& #34;线" 133}}

但是当我使用Facebook API登录时,它上传图片的成功

这是我的控制器:

if (Input::hasFile('profile_pic')) {
        $images = ImageUpload::handle(Input::file('profile_pic'));
        $mainImage = $images[0];
        $time = time();
        $mainImageObj = $this->images->create($this->userId, array(
            'entity_id' => $this->currentUser->Entity_Id,
            'image_url' => $mainImage['image_url'],
            'width' => $mainImage['width'],
            'height' => $mainImage['height'],
            'created_fb' => $time,
            'is_original' => $mainImage['is_original'],
            'original_id' => null
        ));

        $this->userDetails->update($this->userId, array(
            'Profile_Pic_Url' => $mainImageObj->image_url
        ));

        array_shift($images);

        Log::info('images = '.print_r($images, true));
        $retImage = "";
        foreach ($images as $image) {
            $this->images->create($this->userId, array(
                'entity_id' => $this->currentUser->Entity_Id,
                'image_url' => $image['image_url'],
                'width' => $image['width'],
                'height' => $image['height'],
                'created_fb' => $time,
                'is_original' => $image['is_original'],
                'original_id' => $mainImageObj->image_id
            ));
            if ($image['width'] == 250) {
                $retImage = $image['image_url'];
            }
        }

        return Response::json(array(
            'success' => true,
            'message' => 'Upload succeeded!',
            'image_thumbnail_url' => $retImage,
            'image_url' => $mainImage['image_url']
        ));
    } else {
        App::abort(404);
    }
}

这是我的观点:

<form action="{{{ route('postEditProfile', array('profile_id' => Session::get('user_id'))) }}}" class="dropzone" id="profile-pic-upload">
                        <div class="fallback">
                            <input name="file" type="file" multiple />
                        </div>
                    </form>

这里是javascirpt:

<script type="text/javascript">
$(window).bind("load", function() {
var pic_height = $('.profile_pic').height();
var pic_width = $('.profile_pic').width();
var height_factor = pic_height/240;
var pic_width = pic_width/height_factor;
$('.profile_pic').css('height','240px');
$('.profile_pic').css('width',pic_width+"px");
});
$(document).ready(function () {

    $(function () {
        $.ajaxSetup({
            headers: {
                'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
            }
        });
    });

    var routes = {
        postEditProfile: "{{{ route('postOnboardingPhotos') }}}"
    };

    var onboarding = new Onboarding(routes);
});
</script>

任何人都知道如何解决它?我正在搜索错误消息,但似乎没有人发现此错误消息。

1 个答案:

答案 0 :(得分:0)

您是否忘记注入依赖项并将$this->images分配给该依赖项?看起来你有一个图像存储库,你忘了处理它。