xsearch wrote:Public klasöründen nasıl erişmeye çalışıyorsunuz?
laravelde public klasörü gördüğüm kadarı ile statik dosyalar için kullanılıyor (css , js , images ) gibi.
MVC mantığına göre modele Controllerden erişmek daha uygun.
Dediğiniz doğru MVC modelinde controller içerisinde halletmek lazım herşeyi. Ancak sorunumu şu şekilde özetleyeyim o zaman.
Public klasörü altında
data.php dosyamız olsun ve data.php dosyasını kullanan javascript kodu aşağıdaki gibi olsun.
http://127.0.0.1/l4/public/index
source: function (q, process) {
return $.get('data.php', {
q: q
}, function (response) {
var data = [];
for (var i in response) {
data.push(response[i].id + "#" + response[i].name + "#" + response[i].img + "#" + response[i].loc);
}
return process(data);
});
}
http://127.0.0.1/l4/public/data.php
header('Content-type: application/json');
$data[] = array('id'=>1, 'name'=>'Juventus', 'img'=>'juve.png', 'loc'=>'Juventus Arena, Turin');
$data[] = array('id'=>2, 'name'=>'AC Milan', 'img'=>'ac_milan.png', 'loc'=>'San Siro, Milan');
$data[] = array('id'=>3, 'name'=>'Inter Milan', 'img'=>'inter_milan.png', 'loc'=>'Giuseppe Meazza, Milan');
$data[] = array('id'=>4, 'name'=>'SS Lazio', 'img'=>'lazio.png', 'loc'=>'Olimpico, Roma');
$data[] = array('id'=>5, 'name'=>'AS Roma', 'img'=>'as_roma.png', 'loc'=>'Olimpico, Roma');
$data[] = array('id'=>6, 'name'=>'Parma', 'img'=>'parma.png', 'loc'=>'Ennio Tardini, Parma');
$data[] = array('id'=>7, 'name'=>'Fiorentina', 'img'=>'fiorentina.png', 'loc'=>'Artemio Franchi');
$data[] = array('id'=>8, 'name'=>'Napoli', 'img'=>'napoli.png', 'loc'=>'San Paolo, Napoli');
echo json_encode($data);
Eğer bu şekilde çalıştırır isem herhangi bir problem yok.
---------------------------------------------------------------------------------
Ancak data.php dosyası yerine Controller içerisinde bir fonksiyon oluşturup,
public function getData() {
header('Content-type: application/json');
$data[] = array('id'=>1, 'name'=>'Juventus', 'img'=>'juve.png', 'loc'=>'Juventus Arena, Turin');
$data[] = array('id'=>2, 'name'=>'AC Milan', 'img'=>'ac_milan.png', 'loc'=>'San Siro, Milan');
$data[] = array('id'=>3, 'name'=>'Inter Milan', 'img'=>'inter_milan.png', 'loc'=>'Giuseppe Meazza, Milan');
$data[] = array('id'=>4, 'name'=>'SS Lazio', 'img'=>'lazio.png', 'loc'=>'Olimpico, Roma');
$data[] = array('id'=>5, 'name'=>'AS Roma', 'img'=>'as_roma.png', 'loc'=>'Olimpico, Roma');
$data[] = array('id'=>6, 'name'=>'Parma', 'img'=>'parma.png', 'loc'=>'Ennio Tardini, Parma');
$data[] = array('id'=>7, 'name'=>'Fiorentina', 'img'=>'fiorentina.png', 'loc'=>'Artemio Franchi');
$data[] = array('id'=>8, 'name'=>'Napoli', 'img'=>'napoli.png', 'loc'=>'San Paolo, Napoli');
echo json_encode($data);
}
ve
http://127.0.0.1/l4/public/index yolundaki scripti aşağıdaki gibi değiştirince çalışmıyor,
source: function (q, process) {
return $.get("{{URL::to('data')}}", {
q: q
}, function (response) {
var data = [];
for (var i in response) {
data.push(response[i].id + "#" + response[i].name + "#" + response[i].img + "#" + response[i].loc);
}
return process(data);
});
}
-----------------------------------------------
NOT:
http://127.0.0.1/l4/public/data.php
VE
http://127.0.0.1/l4/public/data
aynı çıktıyı veriyor.