我是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>
任何人都知道如何解决它?我正在搜索错误消息,但似乎没有人发现此错误消息。
答案 0 :(得分:0)
您是否忘记注入依赖项并将$this->images
分配给该依赖项?看起来你有一个图像存储库,你忘了处理它。