Как вставить taskId в таблицу файлов в Laravel 5.2

в моем приложении laravel 5.2 есть форма с вложенным файлом, и я сохраняю информацию в таблице файлов.

Файлы / form.blade.php

<form class="form-vertical" role="form"enctype="multipart/form-data"method="post"action="{{ route('projects.files', ['projects' => $project->id]) }}">
<div class="form-group{{ $errors->has('file_name') ? ' has-error' : '' }}">
<input type="file" name="file_name" class="form-control" id="file_name">
@if ($errors->has('file_name'))
<span class="help-block">{{ $errors->first('file_name') }}</span>
@endif
</div>

<div class="form-group">
<button type="submit" class="btn btn-info">Add Files</button>
</div>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>

Filecontroller

public function uploadAttachments(Request $request, $id,$taskId)
{
$this->validate($request, [
'file_name'     => 'required|mimes:jpeg,bmp,png,pdf|between:1,7000',
]);

$filename     = $request->file('file_name')->getRealPath();

Cloudder::upload($filename, null);
list($width, $height) = getimagesize($filename);

$fileUrl = Cloudder::show(Cloudder::getPublicId(), ["width" => $width, "height" => $height]);
$this->saveUploads($request, $fileUrl, $id,$taskId);

return redirect()->back()->with('info', 'Your Attachment has been uploaded Successfully');
}

private function saveUploads(Request $request, $fileUrl, $id,$taskId)
{
$file = new File;
$file->file_name  = $request->file('file_name')->getClientOriginalName();
$file->file_url   = $fileUrl;
$file->project_id = $id;
$file->task_id = $taskId;
$file->save();
}

Теперь у меня есть форма задачи в show.blade.php в файле проектов в папке просмотра проектов / show.blade.php

<form  method="post" action="{{ route('projects.tasks.create', $project->id) }}">
<div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
<input type="text" name="name" class="form-control" id="name" placeholder="Add Task" value="{{ old('name') ?: '' }}">
@if ($errors->has('name'))
<span class="help-block">{{ $errors->first('name') }}</span>
@endif
</div>

@endif
<br>
<div style='display:none'; class='somename'>

<div class="form-group">
<textarea name='body'class="form-control">{{ old('body') }}</textarea>
</div>

<div class="form-group">
<button type="submit" class="btn btn-default">Save</button>
</div>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
@include('files.form') //include File.form

Это моя структура файловой таблицы

id   file_name   file_url    project_id

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

0

Решение

Прежде всего, ваш файл ‘files / form.blade.php’ делает POST, а не GET, поэтому вам нужно включить вход для taskid, как вы сделали для file_name.
может быть:

<input type="hiden" value="ID" /> //ID
<input type="hiden" value="taskID" /> //TASK ID

затем в filecontroller> uploadAttachments () вам нужно получить значения из поста.

$filename     = $request->file('file_name')->getRealPath();
$id = $request->input('id');
$taskID = $request->input('taskID');

После этого вы можете вызвать saveUploads (); для сохранения.

..или если вы отправляете в маршрут с параметрами, включите ваш идентификатор задачи в действие формы.

{{ route('projects.files', ['projects' => $project->id, 'taskid' => 'IdHere']) }}
0

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

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

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