Varyantları JSON datası olarak tutabilirsiniz. Burada güzel bir makale var ayrı bir tablo yerine json olarak tutmak çok daha hızlı ve kolay olacaktır.
Varolan ürün tablosunun içinde variant stünu oluşturabilirsiniz.
PDO kullanmaktadır ve güvenliklidir. Yinede extra güvenlik almakta fayda var
session_start()
ile sessionun başladığından emin miyiz? Birde kod success olarak yönlendirme yapıyor mu nerede hata veriyor?
@rephp7 : Sadece değişkenin adını verip var olup olmadığını kontrol edebilirsiniz.
Sanırım üyenin email adresiyle kontrol sğalıyorsun. Bunu yerine sessionda üyenin Id'sini tutabilirsin yada varsa tokenını.
for (let i = 0; i < 100; i++) {
document.getElementById(“Sayfa″+i).value+= “sayfaadi”;
}
Profil düzenleme kısmı ne zaman eklenir?
@goxaria Hocam bu laravelle alakalı değil, isteklerde post,get,delete,put... gibi bir çok method bulunur. Bunlar düşündüğünüz gibi çalışmaz.
Sizin orada delete işlemi attığınızda insert işlemi yaptığınızı sistem nasıl anlayabilir ki? Hiçbir işlemde hiçbir hatayı almazsınız merak etmeyin.
Evet delete kullanmanız daha doğru olucak fakat performans açısınıdan bu daha kaliteli olacağı için ben bunu tercih ediyorum şahsen
Buraya bir kaynak bırakıyorum. İçindeki birkaç makale gayet iyi.
Derseniz ben aynı kodlarla nasıl delete yaparım? Buyrun;
$(document).on('click','a[data-action=like]',function(e){
e.preventDefault()
var this = $(this);
var id = this.data('id');
$.ajax({
data : {id:id},
url : '/api/like',
method : 'POST',
dataType : 'JSON',
success : function(response){
this.html('Beğenme')
this.data('action','unlike')
}
})
})
$(document).on('click','a[data-action=unlike]',function(e){
e.preventDefault()
var this = $(this);
var id = this.data('id');
$.ajax({
data : {id:id},
url : '/api/like',
method : 'DELETE',
dataType : 'JSON',
success : function(response){
this.html('Beğen')
this.data('action','like')
}
})
})
Tek fonskyonda yazmak isterseniz;
$(document).on('click','a[data-action]',function(e){
e.preventDefault()
var this = $(this);
var id = this.data('id');
var action = this.data('action')
if(action == 'like'){
var method = 'POST'
}else {
var method = 'DELETE'
}
$.ajax({
data : {id:id},
url : '/api/like',
method : method,
dataType : 'JSON',
success : function(response){
if(response.status == 1){
this.html('Beğen')
this.data('action','like')
}else {
this.html('Beğenme')
this.data('action','unlike')
}
}
})
})
Öncelikle tıklandıkça bir butonun gitmesi, diğer butonun gelmesi hatalı. Aynı buton aynı yere post atabilir. Post işlemi gelince veritabanından beğenmiş mi diye kontrol
edip öyle işlem yapmalısınız. Örnedğim;
$(document).on('click','a[data-action=like]',function(e){
e.preventDefault()
var this = $(this);
var id = this.data('id');
$.ajax({
data : {id:id},
url : '/api/like',
method : 'POST',
dataType : 'JSON',
success : function(response){
if(response.status == 1){
this.html('Beğen')
}else {
this.html('Beğenme')
}
}
})
})
...
public function like(Request $request){
$data = likes::find($request->id);
if($data){
$data->delete()
response()->json(['status'=>1])
}else {
likes::insert(['post_id' => $request->id,'user_id' => Auth::user()->id]);
response()->json(['status'=>0])
}
}
Umarım yardımcı olucaktır.
Edit: Veri tabanınızın like sistemi için bu yapıda olmasını tavsiye etmem json formatı daha avantajlı olacaktır.
<!-- Router.php -->
$router->get('/', 'users');
<!-- In Class -->
<!--
Class users olucak burada değişkenden alıcaksınız
Page ise şuanki sayfa olucak. Burada users classına mesela /users sayfasındaysa users fonskyonu çağırabilir mi diye bakıcaz
Çağırılamaz ise yoktur varsa çağırabilir.
-->
is_callable([$class,page]){
call_user_func($class . '::' . $page);
}else {
die('Controller Bulunamadı')
}
Burada
ini_set('max_execution_time', 0)
Dener misiniz.
Edit: Bunu da inceler misiniz emin olamadım ama işinize yarayabilir.