Laravel несколько параметров маршрута - PullRequest
0 голосов
/ 14 мая 2019

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

example.com/download/dogs/beagles/stickypaw.jpg
example.com/download/dogs/germanshepards/woofer.jpg
example.com/download/dogs/alldogs.jpg

Обычно я бы использовал именованные параметры, однако в этом случае это означало бы наличие 3 разных маршрутов:

Route::get('/download/package}/{folder}/{filename}',function ($package, $folder,$filePath) {
  $filePath = "$package/$folder/$filePath";
  return Storage::download($filePath);    
});

Route::get('/download/{package?}/{filename}', function ($package, $filePath) {
  $filePath = "$package/$filePath";
  return Storage::download($filePath);
});

Route::get('/download/{filename}', function ($filename) {     
  return Storage::download($filename);
});

Есть ли способ получить путь после загрузки в переменную?

пример:

Route::get('/download/{path}', function ($path) {
   // loop over the path array
});

1 Ответ

1 голос
/ 14 мая 2019

Это не проверено, но должно работать:

Route::get('/download/{path}', function ($path) {     
    $folders = explode('/', $path);

    // ...
})
    ->where('path', '(.+)');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...