Postingan lainnya
Kelas Premium!
Belajar Javascript untuk website
Gunakan kupon "mulaijs" untuk diskon 75 ribu!
Konfirmasi delete Sweet Alert di Laravel
Assalamualaikum Gan, saya mau sharing sekalian bertanya, saya baru saja berhasil mebuat konfirmasi delete di laravel menggunakan Sweet Alert setelah seharian mencoba. Yang ingin saya tanyakan apakah ada cara lain yang lebih baik atau yang lebih direkomendasikan ?
berikut kode javascript untuk sweet alert nya:
$('#form-delete').on('submit', function(e){
var form = this;
e.preventDefault();
swal({
title: 'Hapus data ?',
text: "Klik Hapus untuk menghapus data !",
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Hapus'
}).then((result) => {
if (result.value) {
return form.submit();
}
})
});
Kode form delete nya:
{!!Form::open(['action' => ['PostsController@destroy', $post->id], 'id' => 'form-delete', 'method' => 'POST', 'class' => 'pull-right'])!!}
{{Form::hidden('_method', 'DELETE')}}
{{Form::submit('Delete', ['class' => 'btn btn-danger'])}}
{!!Form::close()!!}
code methode delete pada controllernya:
public function destroy($id)
{
$post = Post::find($id);
if (auth()->user()->id !==$post->user_id)
{
return redirect('/posts')->with('error', 'Unauthorized Page');
}
if ($post->cover_image != 'noimage.jpg')
{
Storage::delete('public/cover_images/'.$post->cover_image);
}
$post->delete();
notify()->flash('Berhasil menghapus data !', 'success');
return redirect('/posts');
}
terima kasih gan..
9 Jawaban:
Cara diatas bisa gan. Klo ane biasanya pake "uxweb/sweet-alert", model syntax kurang lebih sama, cuma bedanya di controller, tambahin:
use Alert;
public function destroy($id)
{
$post = Post::find($id);
if (auth()->user()->id !==$post->user_id)
{
Alert::error('Unauthorized Page')->persistent('Confirm');
return redirect('/posts');
}
if ($post->cover_image != 'noimage.jpg')
{
Storage::delete('public/cover_images/'.$post->cover_image);
}
$post->delete();
Alert::success('Berhasil menghapus data !')->persistent('Confirm');
return redirect('/posts');
}
Ato kadang klo diperlukan ane pake ajax, trus smua notif sweet alert dan fungsi form ane panggil dari JS.
Ada variasi lainnya juga dgn menggunakan macro gan. Jadi banyak alternatif.
Smoga bisa membantu.
permmisi gan mau nanya ane nyoba kode diatas ko gak bisa ngehapus datanya ya gan? apa mungkin harus pake ajax baru bisa ngehapus ? terimakasih
coba hilangkan code ini gan, jangan pakai if
if (auth()->user()->id !==$post->user_id)
soalnya itu pakai hak akses gan, hanya bisa menghapus apa bila user id nya sesuai dengan membuat post gan..
gan maksudnya class => pull right tuh apa yah?
@wardana, 'class' => 'pull-right' = attribute class pada tag html, contoh:
<pre> {!!Form::open(['action' => ['action_disini'], 'id' => 'form-delete', 'method' => 'POST', 'class' => 'pull-right'])!!} {!!Form::close()!!} // akan membuat <form method="POST" action="action_disini" id="form-delete" class="pull-right" &gt; </pre>
Untuk class-nya sendiri bisa dibuat di css jadi class itu bebas sesuai keinginan. Class pull-right itu dari bawaan bootstrap, kalaupun tdk memakai bootstrap bisa dibuat sendiri pada css:
<pre> .pull-right { float: right; } </pre>
Smoga bisa membantu @wardana
@zergx untuk laravel 5.7 gak bisa ya mas?
@gugunguntoro , sebaiknya buka thread baru gan, klo bisa sertakan pesan error dan kode yang bermasalah. Jika menggunakan package, perlu diperhatikan klo dah support 5.7 ato blum? Tapi untuk ane sampe skarang ga da masalah, masih lancar2 saja gan.
Ga bisa gan sudah dicoba sweetalertnya gk muncul