Во-первых, я явно не совсем понимаю маршрутизацию.Эта проблема связана не с БД, а с управлением изображениями в папке, но я использовал процесс Resource для создания элементов crud.Возможно, это неправильный подход к управлению файлами.
У меня есть следующее представление (это не законченное представление, только для тестирования):
@extends('layouts.app')
@section('content')
<!--/*{ { dd(get_defined_vars(), url()->current()) } }*/-->
@if(!Auth::guest())
@if(Auth::user()->admin == 1)
<h3>Manage Gallery</h3>
@else
<h3>Gallery </h3>
@endif
@else
<h3>Gallery (Visitor)</h3>
@endif
<style>
.flex-container {
display: -webkit-flex;
display: flex;
-webkit-flex-direction: row;
flex-direction: row;
-webkit-align-items: center;
align-items: center;
justify-content: space-around;
flex-wrap: wrap;
min-width: 100px;
max-width: 1100px;
}
.flex-item {
display:flex;
align-items: center;
/*height: 100px;
width: 200px;*/
background-color: #f5f8fa;
color: white;
justify-content: space-between;
margin: 3px;
padding: 10px 0 0 10px;
}
.flex-item img{
flex-grow:0;
flex-shrink:0;
}
span {
padding-left: 5px;
}
</style>
@if(count($data['folders'])>0)
<div class="flex-container">
@foreach ($data['folders'] as $folder)
<div class="flex-item">
<form action="{{action('GalleryController@show', $folder)}}" method="get">
<input name="_method" type="hidden" value="show">
<button class="btn btn-lg px-5 btn-primary" style="margin:5px" type="submit" role="button" <img src="assets/folder_image.png" height="30">{{$folder}}</button>
</form>
<!-- --------------------------------------- -->
<!-- Only show crud buttons if administrator -->
<!-- --------------------------------------- -->
@if(!Auth::guest())
@if(Auth::user()->admin == 1)
<a href="{{action('GalleryController@edit',$folder)}}" class="btn btn-primary btn-sm">Delete 1 Picture</a>
<form action="{{action('GalleryController@destroy', $folder)}}" method="post">
{{csrf_field()}}
<input name="_method" type="hidden" value="DELETE">
<button class="btn btn-danger btn-sm" type="submit">Delete entire Folder</button>
</form>
<a href="{{action('GalleryController@add',$folder)}}" class="btn btn-primary btn-sm">Add piccies</a>
<form action="{{action('GalleryController@add')}}" method="post">
{{csrf_field()}}
<input name="folder" type="hidden" value='{{$folder}}'>
<button class="btn btn-info btn-sm" style="margin:5px" type="submit">Add new pictures</button>
</form>
@endif
@endif
</div>
@endforeach
@if(!Auth::guest())
@if(Auth::user()->admin == 1)
<div class="flex-item" style="width:1500px"> <!-- large width forces flexbox to new row -->
<a href="{{action('GalleryController@create')}}" class="btn btn-primary btn-sm">Create</a>
</div>
@endif
@endif
</div>
@else
@if(!Auth::guest())
@if(Auth::user()->admin == 1)
<br><br><br>
<a href="{{action('GalleryController@create')}}" class="btn btn-primary btn-sm">Create</a>
@endif
@endif
<p>No Gallery Folders available.</p>
@endif
@endsection
Я не могу вспомнить ПОЧЕМУ я используюссылка для «удаления 1 изображения» и форма для «удаления всей папки».Я предполагаю, что нашел это в некотором учебнике и только использовал это.Я хочу удалить определенное изображение (это прекрасно работает с использованием компонента 'edit' контроллера) или удалить всю папку (это также нормально работает с использованием компонента 'destroy' контроллера).
Итак, следующий шаг - добавить новые папки или изображения в определенную папку.Добавление новой папки также работает нормально с использованием компонента «Контроллер» контроллера.
Затем он разваливается, пытаясь добавить новое изображение.С кодом, показанным на рисунке, я получаю 2 разные ошибки в зависимости от того, нажимаю ли я кнопку «Добавить изображения» или кнопку «Добавить новые фотографии».
Мой маршрут (и я пробовал получать и отправлять):
Route::post('/gallery/add/', 'GalleryController@add');
/* Dynamically create all routes for CRUD for gallery table */
Route::resource('gallery', 'GalleryController');
Если я использую кнопку «Добавить картинки», я получаю URL-адрес «http://hdkumdo.com/lsapp/public/gallery/add?2019_Masters', где? 2019 и т. Д. Относится к этой папке.Если я использую кнопку «Добавить новое изображение», я получаю сообщение об ошибке «Ошибка типа: слишком мало аргументов для функции App \ Http \ Controllers \ GalleryController :: add (), 0 передано и ожидается ровно 1».
Если я изменяю маршрут от поста к получению, я получаю сообщение об ошибке «Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException No message».
Представленное представление выглядит так: Вид кнопок
Поскольку я использовал базовые элементы CRUD, созданные RESOURCE, я добавил новую функцию в контроллер, думая, что могу просто вызвать ее. Фрагмент кода:
/**
* Show the form for uploading pictures.
*
* @return \Illuminate\Http\Response
*/
public function add($gallery)
{
$folder = $gallery;
$title = 'Add Pictures';
TheUser::get_Role();
$userRole = session('userRole');
Log::info('GalleryController.add called : user Role =>' . $userRole . ' Folder:' . $folder );
$data = array(
'userRole' => $userRole,
);
/*dd($data);*/
return view('gallery.add')->with('title', $title)->with('data', $data);
}
Итак, любойпредложения / советы и т. д. будет приветствоваться.