Невозможно получить значение переменной в контроллере laravel - PullRequest
0 голосов
/ 09 июля 2020

Laravel 6. PHP 7,4

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

Я только начал с простого метода получения пути и хорошая новость: у меня есть путь, но переменная, содержащая путь, недоступна за пределами предложения If при попадании кода:

  $store_seller->save();

Я пытаюсь понять, как я могу загрузить несколько строк в виде путей изображений.

Blade

 <form method="POST"  enctype="multipart/form-data" id="msform" 
     action="{{route('niceActionController.multiStepStore')}}">

      <div id="dropzoneForm" required class="dropzone"></div>

</form>

Контроллер

public function multiStepStore(Request $request)
{
$store_seller = new Sellers();
    
    $store_seller->generation = $request['generation'];
    $store_seller->trim = $request['trim'];
    $store_seller->regist_year = $request['regist_year'];
    $store_seller->emission_class = $request['emission_class'];
    $store_seller->engine_type = $request['engine_type'];
    $store_seller->gearbox = $request['gearbox'];
    $store_seller->engine_volume = $request['engine_volume'];
    $store_seller->engine_power = $request['engine_power'];

    $now = date('Y-m-d');
    $request['maintenance'] = $now;
    $store_seller->maintenance =$request['maintenance'];
    $store_seller->maintenance = $now;


      if ($request->file('file')!=null)
      {

        $filename = $request->file('file')->getClientOriginalName();
        $image = $request->file('file')->storeAs('public/images',$filename);
        $store_seller->img_path = $image;

      }

      $store_seller->save();

}

dd($store_seller); возвращает все значения в базу данных, кроме img_path .

1 Ответ

0 голосов
/ 09 июля 2020

Это может быть потому, что doent запроса содержит поле file, как вы ожидаете. поэтому тело условий if никогда не выполняется.

попробуйте проверить, есть ли оно в запросе.

if ($request->hasFile('file')) {
    return $request->file('file')->getClientOriginalName();
} else {
    dd('no file!')
}

И я вижу из шаблона html, который вы используете dropzone, в dropzone загрузка файлов может запускаться независимо от формы. поэтому проверьте его документацию и убедитесь, что вы правильно ее используете. И убедитесь, что у вашего поля ввода файла есть имя (в вашем случае вы использовали только file).

...