首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >上传多个文件- Laravel

上传多个文件- Laravel
EN

Stack Overflow用户
提问于 2022-05-23 00:29:25
回答 1查看 292关注 0票数 0

我已经有一个项目,我可以上传多个图像,但我错过了最重要的事情,能够将它们与一个帖子id号码或记录从另一个表。我正在用DropZone做上传。

模型文件

代码语言:javascript
运行
复制
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class File extends Model
{
    use HasFactory;

    protected $fillable = ['url','siniestro_id'];

    
    public function siniestro()
    {
        return $this->BelongsTo('App\models\Siniestro');
    }


}

西尼斯特罗模型

代码语言:javascript
运行
复制
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Wildside\Userstamps\Userstamps;



class Siniestro extends Model
{
    use HasFactory;
    use Userstamps;
   
    protected $fillable = ['created_by', 'imagen', 'updated_by', 'deleted_by', 'siniestro', 'patente', 'cliente', 'fechaip', 'estado', 'modalidad',
    'observaciones', 'fechacierre', 'compania', 'contacto', 'codigoinspeccion', 'inspector', 'direccion', 'localidad', 'telefono', 'motivo', 'link', 'enviarorden', 'email'];


   

   public function files()
   {
       return $this->hasMany('App\models\File');
   }


}

文件控制器

代码语言:javascript
运行
复制
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Models\File;
use App\Models\Siniestro;
use Illuminate\Support\Facades\Storage;

class fileController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('files.index');
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('files.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $imagenes = $request->file('file')->store('public/imagenes');

        $url = Storage::url($imagenes);

        //return $url; // <- verifica lo que devuelve el submit del formulario

        File::create([
            'url' => $url,
            'siniestro_id' => $siniestro->id,
            
        ]);
          

        
    }

我在桌子上建立的关系的观点

查看要上载图像的编辑位置

代码语言:javascript
运行
复制
@can('editar-siniestro')
                                <form action="{{ route('siniestros.update',$siniestro->id) }}" method="POST">
                                    @csrf
                                    @method('PUT')
                                    <div class="row">
                                        <div class="col-xs-3 col-sm-3 col-md-3">
                                            <div class="form-group">
                                            <label for="siniestro">Siniestros</label>
                                            <input type="text" name="siniestro" class="form-control" disabled value="{{ $siniestro->siniestro }}">
                                            </div>
                                        </div>
                                        
                                        <div class="col-xs-3 col-sm-3 col-md-3">
                                            <div class="form-group">
                                            <label for="patente">Patente</label>
                                            <input type="text" name="patente" class="form-control" disabled value="{{ $siniestro->patente }}">
                                            </div>
                                        </div>
                                        <div class="col-xs-6 col-sm-6 col-md-6">
                                            <div class="form-group">
                                            <label for="link">Link 2.0</label>
                                            <input type="text" name="link" class="form-control" disabled value="{{ $siniestro->link }}">
                                            </div>
                                        </div>
                                        <div class="col-xs-4 col-sm-4 col-md-4">
                                            
                                    <label for="lugar">Lugar de inspección</label>
                                    <select class="form-select col-xs-12 col-sm-12 col-md-12" aria-label="Default select example" for="lugar" name="lugar" value="{{ $siniestro->lugar}}">
                                            <option selected>-- seleccionar --</option>
                                            <option value="TH">Taller homologado</option>
                                            <option value="Taller del asegurado">Taller del asegurado</option>
                                            <option value="Domicilio particular">Domicilio particular</option>
                                            
                                        </select>
                                    </div>
                                        
                                    
                                        
                                        <div class="col-xs-4 col-sm-4 col-md-4">
                                        <label for="Estado">Estado</label>
                                        <select class="form-select col-xs-12 col-sm-12 col-md-12" aria-label="Default select example" for="estado" name="estado" value="{{ $siniestro->estado }}">
                                                <option selected>{{ $siniestro->estado }}</option>
                                                <option value="Coordinado">Coordinado</option>
                                                <option value="Ausente">Ausente</option>
                                                <option value="Derivado">Derivado</option>
                                                <option value="Baja">Baja</option>
                                            </select>
                                        </div>
                                        <div class="col-xs-4 col-sm-4 col-md-4">
                                        <label for="modalidad">Tipo de inspeccion</label>   
                                        <select class="form-select col-xs-12 col-sm-12 col-md-12" aria-label="Default select example" for="modalidad" name="modalidad" value="{{ $siniestro->modalidad }}"> 
                                                <option selected>{{ $siniestro->modalidad }}</option>
                                                <option value="Presencial">Presencial</option>
                                                <option value="Videollamada">Videollamada</option>
                                                <option value="Por foto">Por foto</option>
                                                <option value="Por foto y presupuesto">Por foto y presupuesto</option>
                                            </select>
                                        </div>
                                    
                                        <div class="col-xs-3 col-sm-3 col-md-3 mt-2">
                                            <div class="form-group">
                                            <label for="direccion">Dirección</label>
                                            <input type="text" name="direccion" class="form-control" value="{{ $siniestro->direccion }}">
                                            </div>
                                        </div>
                                        <div class="col-xs-4 col-sm-4 col-md-4">
                                        <div class="form-group">
                                        <label for="fechaip">Fecha IP</label>
                                        <input type="date" name="fechaip" class="form-control">
                                        </div>
                                        </div>
                                        <div class="col-xs-3 col-sm-3 col-md-3 mt-2">
                                            <div class="form-group">
                                            <label for="localidad">Localidad</label>
                                            <input type="text" name="localidad" class="form-control" value="{{ $siniestro->localidad }}">
                                            </div>
                                        </div>
                                        <div class="col-xs-3 col-sm-3 col-md-3 mt-2">
                                            <div class="form-group">
                                            <label for="enviarorden">Enviar orden</label>
                                            <input type="text" name="enviarorden" class="form-control" value="{{ $siniestro->enviarorden }}">
                                            </div>
                                        </div>
                                        <div class="col-xs-3 col-sm-3 col-md-3 mt-2">
                                            <div class="form-group">
                                            <label for="motivo">Motivo</label>
                                            <input type="text" name="motivo" class="form-control" value="{{ $siniestro->motivo }}">
                                            </div>
                                        </div>
                                        <div class="col-xs-4 col-sm-4 col-md-4">
                                            <div class="form-group">
                                            <label for="email">E-mail</label>
                                            <input type="text" name="email" class="form-control" value="{{ $siniestro->email }}">
                                            </div>
                                        </div>
                                    
                                        <div class="col-xs-3 col-sm-3 col-md-3">                 
                                            <div class="form-group">
                                            <label for="observaciones">Observaciones</label>
                                            <textarea class="form-control" name="observaciones" style="height: 100px" value="{{ $siniestro->observaciones }}">{{ $siniestro->observaciones }}</textarea>                                
                                            </div>
                                        </div>
                                    </div>

                                    <button type="submit" class="btn btn-success">Confirmar Cambios</button>
                                     
                                    </div>
                                </form>
                                <form action="{{route('files.store')}}" method="POST"
                            
                            class="dropzone"
                            id="my-awesome-dropzone">
                            
                            </form>
                                @endcan
                            </div>
                        </div>

我真的不确定我是否应该从控制器“文件”,或者我是否应该直接从"siniestro“控制器.为了清楚起见,我需要这些文件从它们所属的id主键(即上传到其中的)获取"siniestro_id“。

EN

回答 1

Stack Overflow用户

发布于 2022-05-23 02:37:33

您是要同时存储文件还是先存储文件?

无论如何,我们建议您创建FileServiceSiniestroService来处理逻辑。

FileController/SiniestroController可以调用FileService/SiniestroService (也可以调用pass)

FileService可以调用SiniestroService,也可以调用逆节(pass )

工作流route <-> controller <-> service E 117<-><代码>E 218d19

一个简单的例子是这里

(注:您可以阅读有关验证、中间件、.)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72342184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档