Не удается получить входные значения с помощью enctype = & quot; multipart / form-data & quot;

Я работаю с формами на Laravel, и я все еще учусь. Я думал, что уже все понял, но меня поразила проблема:

Когда у меня есть enctype = «multipart / form-data», я не могу получить входные значения. Загружаемый файл все равно загружается на диск, но остальные значения не печатаются. Если я удаляю enctype = «multipart / form-data», я получаю значения.

Форма:

<form id="forms" method="POST" action="alteracaocomissao" enctype="multipart/form-data">

{{ csrf_field() }}

<div class="form-row">
<div class="form-group col-md-6">
<label for="nomeentidade">Nome:</label>
<input type="text" class="form-control" id="nome1" name="nome1" placeholder="Nome entidade" required>

</div>
<div class="form-group col-md-6">
<label for="numentidade">Nº:</label>
<input type="text" class="form-control" id="num1" name="num1" placeholder="Número" required>
</div>
</div>

<div class="form-row">
<div class="form-group col-md-6 mb-3">
<label for="conta">Conta:</label>
<input type="text" class="form-control" id="conta" name="conta" placeholder="Conta" required>
</div>

<div class="form-group col-md-3 mb-3">
<label for="balcao">Local:</label>
<select class="form-control" id="local1" name="local1" required>
<option value="">Escolher...</option>
<option value="1">Local</option>
<option value="2">Local1</option>
</select>
</div>

<div class="form-group col-md-3 mb-3">
<label for="atleracao">Tipo de alteração:</label>
<select class="form-control" id="alteracao" name="alteracao" required>
<option value="">Escolher...</option>
<option value="1">Alterar1</option>
<option value="2">Alterar2</option>
</select>
</div>
</div>

<hr>

<div class="form-row" id="buildyourform">
<div class="form-group col-md-4">
<label for="comissao">TEST:</label>
<select class="form-control" id="TEST1" name="TEST1" required>
<option value="">Escolher...</option>
<option value="1">TEST</option>
<option value="2">TEST1</option>
</select>
</div>

<div class="form-group col-md-2">
<label for="desconto">Desconto solicitado:</label>
<div class="input-group">
<input type="text" class="form-control" id="desconto" name="desconto" placeholder="Número" required>
<span class=input-group-addon>%</span>
</div>
</div>

<div class="form-group col-md-2">
<label for="add"> &nbsp </label>
<input type="button" value="Adicionar campos" class="form-control btn btn-light" id="add" />
</div>

<div class="form-group col-md-1" id="2field">
<label for="remove"> &nbsp </label>
<input type="button" value="Remover" class="form-control btn btn-light" id="remove" />
</div>

<div class="form-group col-md-2">
</div>
</div>

<hr>

<div class="form-row">

<div class="form-group col-md-12">
<label for="fundamentacao">Fundamentação:</label>
<textarea type="text" class="form-control" id="fundamentacao" name="fundamentacao" placeholder="Fundamentação do pedido" required></textarea>
</div>

</div>

<div class="form-row">
<div class="form-group col-md-2">
<label for="file2">Anexo:</label>
<input type="file" name="file2" id="file2" required>

</div>
</div>

<hr>

<button type="submit" class="btn btn-primary">Enviar</button>
</form>

контроллер:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class PostController extends Controller
{

public function AltComiss(Request $request)
{
session_start();

$array1 = $request -> all();
$path = $request->file('file2')->store('altComiss');

$arrayRm1 = array_shift($array1);

$_SESSION["testPostSection1"] = $array1;

return redirect('alteracaocomissao');

}
}

Маршрут:

Route::post('alteracaocomissao', 'PostController@AltComiss');

Тестовый код:

@php

session_start();

if (isset($_SESSION["testPostSection1"])) {

echo '<pre>'; print_r($_SESSION["testPostSection1"]); echo '</pre>';

}

@endphp

У меня есть SESSION, чтобы проверить, сохраняются ли значения, потому что я до сих пор не настроил базу данных, и пока я не использую SESSION для тестирования. Очевидно, что после настройки базы данных я переключусь с SESSION на вставку значений в базу данных.

Заранее спасибо!

0

Решение

Я думаю, что это поможет вам

use Illuminate\Http\Request;

//use these For Start your session and Store file
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Storage;


class PostController extends Controller{
public function AltComiss(Request $request){
$array1 = $request->all();

if ($request->hasFile('file2')) {
$file = $request->file('file2');
$destinationPath = 'altComiss';
$file->move($destinationPath,$file->getClientOriginalName());
}

$arrayRm1 = array_shift($array1);

Session::flash('allInput',$arrayRm1);
return redirect('alteracaocomissao');
}

}

В вашем представлении файла для получения данных сессии просто используйте

@if (Session::has('allInput'))
<?php
echo '<pre>';
print_r(Session::get('allInput'));
echo '</pre>';
?>
@endif
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector