#laravel #mongodb #laravel-5 #eloquent #edit
#laravel #mongodb #laravel-5 #красноречивый #Редактировать
Вопрос:
Каждый раз, когда я нажимаю «Редактировать», я получаю последнюю вставленную запись. Как можно получить конкретный идентификатор, когда я нажимаю на кнопку редактирования этой конкретной записи?
Я помещаю 2 всплывающих окна, в которых появится всплывающее окно «Добавить праздник», всплывающее окно «Добавить праздник» и «Редактировать праздник» всплывающее окно «Редактировать праздник».
Как я могу решить эту проблему??
вот мой код файла просмотра
@extends('layouts.master')
@section('content')
<section>
<div class="page-wrapper">
<div class="container-fluid">
<div class="row page-titles">
<div class="col-md-5 align-self-
</div>
</div>
<div class="card">
<div class="card-body">
<a href="javascript:void(0)" data-toggle="modal" data-target="#myModalAdd" class="btn btn-info text-white"> Add Holidays</a>
<div id="myModalAdd" class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabelAdd" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabelAdd">Add Holidays</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<form class="form-horizontal" method="POST" action="{{route('store_holidays')}}">
@csrf
<div class="form-group">
<label class="col-md-12">Date:</label>
<div class="col-md-12">
<input type="date" name="holidaydate" class="form-control" placeholder="dd/mm/yyyy">
</div>
</div>
<div class="form-group">
<label class="col-md-12">Occasion</label>
<div class="col-md-12">
<input type="text" class="form-control" name="occasion" placeholder="Occasion">
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-info waves-effect" data-dismiss="modal">Save</button>
<button type="button" class="btn btn-default waves-effect" data-dismiss="modal">Cancel</button>
</div>
</form>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<div class="table-responsive m-t-40">
<table class="table table-bordered table-striped ">
<thead>
<tr>
<th>Date</th>
<th>Occasion</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach($publicHolidays as $holiday)
<tr>
<td>{{$holiday->holidaydate}}</td>
<td>{{$holiday->occasion}}</td>
<td>
<a href="{{url('/edit-holiday', $holiday->id)}}" data-toggle="modal" data-target="#myModal"><i class="fa fa-edit fa-lg" style="color:#0066ff" aria-hidden="true"></i></a>
<a href="{{url('/delete-holiday', $holiday->id)}}"><i class="fa fa-trash fa-lg" style="color:red" aria-hidden="true"></i></a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<div id="myModal" class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabelEdit" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabelEdit">Edit Holiday</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<form class="form-horizontal" method="POST" action="{{ url('edit-holiday', $holiday->id) }}">
@csrf
<div class="form-group">
<label class="col-md-12">Date:</label>
<div class="col-md-12">
<input type="date" name="holidaydate" class="form-control" placeholder="dd/mm/yyyy" value="{{$holiday->holidaydate}}">
</div>
</div>
<div class="form-group">
<label class="col-md-12">Occasion</label>
<div class="col-md-12">
<input type="text" class="form-control" name="occasion" placeholder="Occasion" value="{{$holiday->occasion}}">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-info waves-effect" data-dismiss="modal">Update</button>
<button type="button" class="btn btn-default waves-effect" data-dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
@endsection
вот мой код файла контроллера
<?php
namespace AppHttpControllers;
use AppHoliday;
use Session;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
use IlluminateSupportFacadesInput;
use IlluminateSupportFacadesRedirect;
use IlluminateSupportFacadesHash;
class HolidayController extends Controller
{
public function addHolidays(Request $request)
{
$holiday = new Holiday();
$holiday->holidaydate = $request->get('holidaydate');
$holiday->occasion = $request->get('occasion');
$holiday->save();
return redirect('list-holidays')->with('success', 'Holiday Added Successfully');
}
public function listHolidays()
{
$publicHolidays = Holiday::all();
return view('pages.listholiday', compact('publicHolidays'));
}
public function editHoliday($id)
{
$holiday = Holiday::find($id);
return view('pages.listholiday', compact('holiday', 'id'));
}
public function updateHoliday(Request $request, $id)
{
$holiday = Holiday::find($id);
$holiday->holidaydate = $request->get('holidaydate');
$holiday->occasion = $request->get('occasion');
$holiday->save();
return redirect('list-holidays')->with('success', 'Holiday Updated Successfully');
}
public function deleteHoliday($id)
{
$holiday = Holiday::find($id);
$holiday->delete();
return redirect('list-holidays')->with('Success', 'Record Deleted SuccessFully!');
}
}
Мой файл блейда
@extends('layouts.master')
@section('content')
<section>
<div class="page-wrapper">
<div class="container-fluid">
<div class="row page-titles">
<div class="col-md-5 align-self-center">
<h4 class="text-themecolor">{{__(' Holiday Schedule')}}</h4>
</div>
</div>
{{-- POP-UP Form --}}
<div class="card">
<div class="card-body">
<a href="javascript:void(0)" data-toggle="modal" data-target="#myModalAdd" class="btn btn-info text-white"> Add Holidays</a>
<div id="myModalAdd" class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabelAdd" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabelAdd">Add Holidays</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<form class="form-horizontal" method="POST" action="{{route('store_holidays')}}">
@csrf
<div class="form-group">
<label class="col-md-12">Date:</label>
<div class="col-md-12">
<input type="date" name="holidaydate" class="form-control" placeholder="dd/mm/yyyy">
</div>
</div>
<div class="form-group">
<label class="col-md-12">Occasion</label>
<div class="col-md-12">
<input type="text" class="form-control" name="occasion" placeholder="Occasion">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-info waves-effect" data-dismiss="modal">Save</button>
<button type="button" class="btn btn-default waves-effect" data-dismiss="modal">Cancel</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
{{-- END POPUP FORM --}}
<div class="table-responsive m-t-40">
<table class="table table-bordered table-striped ">
<thead>
<tr>
<th>Date</th>
<th>Occasion</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach($publicHolidays as $holiday)
<tr>
<td>{{$holiday->holidaydate}}</td>
<td>{{$holiday->occasion}}</td>
<td>
{{-- <a href="{{url('/edit-holiday', $holiday->id)}}" data-toggle="modal" data-target="#myModal"><i class="fa fa-edit fa-lg" style="color:#0066ff" aria-hidden="true"></i></a> --}}
<a class="holiday_modal" href="{{url('/edit-holiday', $holiday->id)}}" data-toggle="modal" data-target="#myModal" data-holidaydate="{{ $holiday->holidaydate }}" data-action="{{ route('edit_holidays', $holiday->id) }}" data-occasion="{{$holiday->occasion}}"><i class="fa fa-edit fa-lg" style="color:#0066ff" aria-hidden="true"></i></a>
<a href="{{url('/delete-holiday', $holiday->id)}}"><i class="fa fa-trash fa-lg" style="color:red" aria-hidden="true"></i></a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<div id="myModal" class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabelEdit" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabelEdit">Edit Holiday</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<form class="form-horizontal" method="POST" id="action_modal">
@csrf
<div class="form-group">
<label class="col-md-12">Date:</label>
<div class="col-md-12">
<input type="date" name="holidaydate" class="form-control" placeholder="dd/mm/yyyy" id="holidaydate">
</div>
</div>
<div class="form-group">
<label class="col-md-12">Occasion</label>
<div class="col-md-12">
<input type="text" class="form-control" name="occasion" placeholder="Occasion" id="occasion">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-info waves-effect" data-dismiss="modal">Update</button>
<button type="button" class="btn btn-default waves-effect" data-dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$('.holiday_modal').click(function (event) {
$('#holidaydate').attr('value', $(this).data('action'));
$('#occasion').attr('value', $(this).data('occasion'));
$('#action_modal').attr('action', $(this).data('action'));;
})
</script>
</section>
@endsection
Комментарии:
1. Извините, я не понял должным образом.
2. я не думаю, что нужен весь файл блейда, но, возможно, часть кода для формы кнопки редактирования?
3. Код для кнопки редактирования праздничных дней <a href=»{{url(‘/edit-holiday’, $holiday->id)}}» data-toggle=»модальный» data-target=»#myModal»><i class=»fa fa-edit fa-lg» style=»color:#0066ff» aria-hidden=»true»></i></a>
4. Вы видели holiday-> id при наведении курсора мыши на кнопку?
5. Да, я проверил, в то время он отображал этот конкретный идентификатор этой записи
Ответ №1:
Попробуйте с этим
В вашей кнопке редактирования
<a class="holiday_modal" href="{{url('/edit-holiday', $holiday->id)}}" data-toggle="modal" data-target="#myModal" data-holidaydate="{{ $holiday->holidaydate }}" data-action="{{ route('edit-holiday', $holiday->id) }}" data-occasion="{{$holiday->occasion}}"><i class="fa fa-edit fa-lg" style="color:#0066ff" aria-hidden="true"></i></a>
Ваш модальный
<div id="myModal" class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabelEdit" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabelEdit">Edit Holiday</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<form class="form-horizontal" method="POST" id="action_modal">
@csrf
<div class="form-group">
<label class="col-md-12">Date:</label>
<div class="col-md-12">
<input type="date" name="holidaydate" class="form-control" placeholder="dd/mm/yyyy" id="holidaydate">
</div>
</div>
<div class="form-group">
<label class="col-md-12">Occasion</label>
<div class="col-md-12">
<input type="text" class="form-control" name="occasion" placeholder="Occasion" id="occasion">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-info waves-effect" data-dismiss="modal">Update</button>
<button type="button" class="btn btn-default waves-effect" data-dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
</div>
В конце файла добавьте скрипт
<script type="text/javascript">
$('.holiday_modal').click(function (event) {
$('#holidaydate').attr('value', $(this).data('holidaydate'));
$('#occasion').attr('value', $(this).data('occasion'));
$('#action_modal').attr('action', $(this).data('action'));;
})
</script>
Надеюсь, это поможет 🙂
Комментарии:
1. Это работает, но это не выборка записи из базы данных, поля пусты
2. Нет, все та же проблема
3. не могли бы вы, пожалуйста, показать свой сгенерированный HTML-код любого поля модального
4. Я обновляю вопрос с именем «Мой файл blade is».
5. Извините, сэр, но та же проблема. Запись не может быть извлечена из базы данных