Evet aceleyle yazarken biraz karıştırmışım, şimdi daha açık bir şekilde yazayım.
Öncelikle controller içinde echo ya da return View:make(....) yapınca çıktısı bildiğimiz html oluyor.
Ancak bu View'i değişkene atayıp json ile gönderip view dosyasının içinde bakınca çıktı bu view:make nesnesi oluyor, bu nesnenin özellikleri gözüküyor.
Benim yapmak istediğim bir objeye tıklandığında o objenin id'sini alıp controller'a ajax ile yollaması. Daha sonra controller'da o id'ye bağlı 2 ayrı özellik çekip, 2 farklı div'de göstermek istiyorum. Bu özellikler Kitap ve User nesneleri olsun. Bu noktada yaptığım şey, yukarıda da gösterdiğim gibi
public function post_blinkclick(){
$blink = Input::get('blink');
$blink = Blink::find($blink);
$sol = View::make('home.sol')->with('kitap', Kitap::find($blink->kitap_id));
$sag = View::make('home.sag')->with('user', User::find($blink->user_id));
$data = array();
$data['sol'] = $sol;
$data['sag'] = $sag;
return json_encode($data);
}
Buradan gelen veri ise aşağıdaki view dosyasına dönüyor:
$.ajax({
url: 'clickblink',
type: 'POST',
data: 'blink=' + id,
dataType :'json',
async: false,
success: function(data){
$('#sol').html(data));
}
Firebug ile incelediğimde, array ile gelen veriyi düzene soktuğumda şöyle gözüküyor:
{"sol":{
"view":"home.sol",
"data":{
"errors":{
"messages":[],
"format":":message"},
"kitap":{
"attributes":{
"id":2,
"adi":"Kar",
"yil":null,
"yazar_id":2,
"info":null,
"created_at":"0000-00-00 00:00:00",
"updated_at":"0000-00-00 00:00:00"},
"original":{
"id":2,
"adi":"Kar",
"yil":null,
"yazar_id":2,
"info":null,
"created_at":"0000-00-00 00:00:00",
"updated_at":"0000-00-00 00:00:00"},
"relationships":[],
"exists":true,
"includes":[]}},
"path":"C:\\wamp\\www\\kitap\\application\\views\\home\/sol.blade.php"},
"sag":{
"view":"home.sag",
"data":{
"errors":{
"messages":[],
"format":":message"},
"user":{
"attributes":{
"id":2,
"username":"utku",
"email":"***",
"sifre":"***",
"avatar":"",
"facebook":"",
"twitter":"",
"created_at":"0000-00-00 00:00:00",
"updated_at":"0000-00-00 00:00:00"},
"original":{
"id":2,
"username":"utku",
"email":"***",
"sifre":"***",
"avatar":"",
"facebook":"",
"twitter":"",
"created_at":"0000-00-00 00:00:00",
"updated_at":"0000-00-00 00:00:00"},
"relationships":[],
"exists":true,
"includes":[]}},
"path":"C:\\wamp\\www\\kitap\\application\\views\\home\/sag.blade.php"}}
Array yapmadan sadece Kitap değişkenini yollasam böyle oluyor:
<div class="well">
Kar<br>
Orhan Pamuk
</div>
Sonuç olarak, controller içinde View::make ile iki ayrı sayfayı oluşturup view dosyama gönderip iki farklı div'e eklemek istiyorum ancak başaramadım. Nerede hata yapıyorum?
Yine çok fazla detay verip karıştırmış olabilirim, eğer öyleyse şimdiden özür dilerim.