Forms Dropzone+;拉威尔在一个地方形成

Forms Dropzone+;拉威尔在一个地方形成,forms,laravel,upload,eloquent,dropzone.js,Forms,Laravel,Upload,Eloquent,Dropzone.js,我有一个laravel项目,这是一个分类广告网站,每个广告应该有一些照片附加到它。我制作了两个模型,在db中有两个表格,一个用于广告,另一个用于图片,关系设置正确媒体表在表单中使用外键advert_id DropZoneJ,但其URL指向MediaController的函数添加广告由AdvertController管理现在问题是在这两个单独的工作位置上载图像时我不知道advert_id值,但我不知道如何让用户先保存广告,然后再上传图片。我不想在两个页面上拆分表单,但不知道如何操纵用户来完成我需要

我有一个laravel项目,这是一个分类广告网站,每个广告应该有一些照片附加到它。我制作了两个模型,在db中有两个表格,一个用于广告,另一个用于图片,关系设置正确媒体表在表单中使用外键advert_id DropZoneJ,但其URL指向MediaController的函数添加广告由AdvertController管理现在问题是在这两个单独的工作位置上载图像时我不知道advert_id值,但我不知道如何让用户先保存广告,然后再上传图片。我不想在两个页面上拆分表单,但不知道如何操纵用户来完成我需要的操作。 以下是我管理dropzone的代码:

$('.dropzone stuff').dropzone({
url:“{{url::to('upl')}}”,
paramName:'文件',
自动处理队列:true,
最大文件数:5,
addRemoveLinks:是的,
可点击:正确,
dictDefaultMessage:“{{trans('custom.drop.dictDefaultMessage')}”,
dictFallbackMessage:“{{trans('custom.drop.dictFallbackMessage')}”,
dictFallbackText:“{{trans('custom.drop.dictFallbackText')}”,
dictInvalidFileType:“{{trans('custom.drop.dictInvalidFileType')}}”,
dictFileTooBig:“{{trans('custom.drop.dictFileTooBig')}”,
dictCancelUpload:“{{trans('custom.drop.dictCancelUpload')}”,
dictRemoveFile:“{{trans('custom.drop.dictRemoveFile')}}”,
dictMaxFilesExceeded:“{{trans('custom.drop.dictMaxFilesExceeded')}}”,
});
以下是在MediaController中管理上载的部分:

public function uploadImages()
    {
        if (Sentry::check()) {
            $file = Input::file('file');
            $advert_id = Advert::orderby('id', 'desc')->first()->id;
            $destinationPath = public_path().'/uploads/'.Sentry::getUser()->username.'/';
            $filename = str_random(6);
            $extension =$file->getClientOriginalExtension();
            $filename = $filename.'.'.$extension;
            $upload_success = Input::file('file')->move($destinationPath, $filename);
            if( $upload_success ) {
                return Response::json('success', 200);
            } else {
                return Response::json('error', 400);
            }
        }
    }

嗯,我想这里可能会有太多的代码来发布所有内容,但我只想告诉大家需要什么——我必须在上传之前拥有广告ID,才能将其用于媒体表中的广告ID列。

我处理类似情况的方法是先创建实体(广告),然后为您计划添加到其中的媒体创建第二个页面或步骤。由于实体存在,并且可以发布到下一页,您可以将其添加到脚本中

myDropzone.on("sending", function(file, xhr, formData) {
   formData.append('advert_id', <?php echo $advert_id; ?>);
});
myDropzone.on(“发送”,函数(文件、xhr、formData){
formData.append('advert_id',);
});

然后在upl文件中,您可以将其关联到那里。

通过添加Session::push('files',$filename),然后在创建广告后引用此会话变量来解决此问题。将媒体链接添加到db表后,刷新会话。仍然认为这不是应该怎么做,但作为一个临时解决方案还是很好的。仍然不是可靠的解决方案,仍然在寻求帮助。但是如果广告还没有创建,我如何获得广告id?这只是一个广告预览和广告id将在这一步完成后准备好。