Postingan lainnya
saya mau melakukan function delete.. logicnya kalo casenya seperti ini.
saya punya 3 table,
1, table worker (id, name,..)
2, table attendance (id, date)
3. pivot table attendance_worker (id, worker_id; attendance_id; status)
nah saya ceritain alurnya dulu..
jadi disini saya pilih tanggal untuk selanjutnya melakukan absensi karyawan.tampilan list tanngalnya
disini saya misalkan tambah kehadiran pekerjaanya, bila saya klik add attendance worker dia akan munculkan pop up modal,
tampilan untuk list kehadiran
jika saya save dia ke input ke table pivot attendance_worker
ini tampilan bentuk modalnya
nah ini tampilan setelah saya pilih save insert data ke table pivotnya attendance_worker
setelah di save data dan data berhasil di input ke attendance_worker
nah ini masalahnya bang, ketika saya melakukan delete di tombol action itu, katakanlah si budi saya hapus,
tidak ada error memang tp url di atasnya bang jd begitu, terus data si budi di table pivot attendance_worker tidak terhapus,
URL jadi begitu, data budi di data base juga tidak terhapus
ini table pivotnya attendance_worker, nama budi (worker_id: 3)
budi worker_id : 3 tidak terhapus,
saya lampirkan ini code- codenya..
ini detail.blade.php (ini buat tampilan detail tanggal untuk daftar kehadirannya) beserta modal popupnya..
@extends('layouts.master')
@section('content-header')
<div class="row">
<div class="col-xl-12">
<div class="card easion-card">
<div class="card-header">
<div class="easion-card-icon">
<i class="fas fa-chart-bar"></i>
</div>
<div class="easion-card-title"> Date Attendance : {{ $attendance-> date }} </div>
@endsection
@section('content')
</div>
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
Add Attendace Worker
</button>
<div class="row clearfix">
<div class="card-body ">
<table class="table table-hover table-in-card">
<thead>
<tr>
<th scope="col">No</th>
<th scope="col">Name</th>
<th scope="col">Info</th>
<th scope="col" class="">Action</th>
</tr>
</thead>
<tbody>
<?php $i=1;?>
@foreach ($attendance->worker as $k)
<tr>
<th scope="row">{{ $i }}</th>
<td>{{$k->name}}</td>
<td>{{$k->pivot->info}}</td>
<td>
<form action="/attendance/delete/presence/{{$attendance->id}}" method="post" class="d-inline">
@method('delete')
@csrf
<button class="btn btn-warning btn btn-danger btn-sm"><i class="fas fa-trash-alt"></i></button>
</form>
</td>
</tr>
<?php $i++;?>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
<label> Present : {{$attendance_worker_present}}</label><br>
<label> Absent : {{$attendance_worker_absent}}</label>
</div>
</div>
@endsection
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Attendance</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form role="form" action="/attendance/adddate/{{$attendance->id}}" method="POST">
<div class="form-group">
<div class="form-line">
<input name="_token" type="hidden" value="{{ csrf_token() }}" />
<input name="_method" type="hidden" value="POST" />
</div>
</div>
<div class="form-group">
<label for="worker">Name </label>
<select name="worker" class="form-control" id="worker">
@foreach ($worker as $d)
<option value={{$d->id}}>{{$d->name}}</option>
@endforeach
</select>
</div>
<div class="form-group">
<label for="worker">Status</label>
<select name="info" class="form-control" id="worker">
<option >present</option>
<option >absent</option>
</select>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Save</button>
</div>
</form>
</div>
</div>
</div>
</div>
trs, ini code untuk AttendanceControllernya,
public function show($iddate)
{
$attendance = Attendance::where('id', '=', $iddate)->first();
$worker = Worker::all();
$attendance_worker_present = Attendance_worker::where('attendance_id', $iddate)
->whereIn('info', ['present'])
->count();
$attendance_worker_absent = Attendance_worker::where('attendance_id', $iddate)
->whereIn('info', ['absent'])
->count();
return view('attendance.detail', ['attendance'=>$attendance, 'worker'=>$worker, 'attendance_worker_present'=>$attendance_worker_present, 'attendance_worker_not_in'=>$attendance_worker_absent]);
}
public function adddate(Request $request, $iddate)
{
// dd($request->all());
$data = Attendance::where('id', '=', $iddate)->first();
if($data->worker()->where('worker_id',$request->worker)->exists()){
return redirect('attendance/detail/'.$iddate);
}
$data->worker()->attach($request->worker,['info'=>$request->info]);
return redirect('attendance/detail/'.$iddate)-> with('status', 'Kehadiran berhasil di tambahkan');
}
public function deleteattendance(Attendance $id)
{
$data= Attendance_worker::where('worker_id', '=', $id);
$data->forceDelete();
return redirect('attendance/detail/'.$id);
}
ini routenya
Route::get('/attendance/detail/{id}', 'AttendancesController@show');
Route::post('/attendance/adddate/{id}', 'AttendancesController@adddate');
Route::delete('/attendance/delete/presence/{id}', 'AttendancesController@deleteattendance');
bagiamana ya kira-kira solvingnya?
initinya saya mau hapus si budi dari table attendance_worker.
1 Jawaban:
<div>Mungkin ada yang salah dengan parameter method delete-nya, Kak. <br><br></div><pre>public function deleteattendance(Attendance $id)</pre><div><br>Mungkin cukup beri $id saja, tidak perlu 'Attendance'-nya, Kak.</div>