MapController ve PagesController diye iki ayri controller'im var.
Ikisinden de ayni view'e DB'deki ayni table'dan cektigim datalari yolluyorum. Fakat ayni table'dan cektigim icin
sanirim birisi hata veriyor. Ornegin MapController'iyla table'daki adres sutunundan adresleri alip
view'daki Javascript'e gonderdigim herhangi bir sorun yok. Fakat PagesController'iyla butun datalari ayni sayfada
baska bir noktada kullandigim zaman MapController'indan gelen $var tanimlanamayan durumuna dusuyor.
Undefined variable: estates (View: /var/www/html/laravel/resources/views/layouts/app.blade.php) (View: /var/www/html/laravel/resources/views/layouts/app.blade.php)
*PagesController*
public function search(Request $request)
{
$q = $request->q;
$estates = \DB::table('allestates')
->where("building_name", "LIKE", "%" . $q . "%")
->orWhere("address", "LIKE", "%" . $q . "%")
->orWhere("company_name", "LIKE", "%" . $q . "%")
->orWhere("region", "LIKE", "%" . $q . "%")
->orderBy('price')->paginate(5);
return view("home", compact('estates', 'q'));
}
*view*
@foreach($estates as $estate)
<div class="row" id="main-wrapper">
<div class="col-sm">
<img src=" https://dummyimage.com/150x150/000/fff" alt="" class="img-radius">
</div>
<div class="col-6">
<h3>{{$estate->building_name}}</h3>
<p>
<br>
{{str_limit($estate->address, $limit = 80)}}
<br>
{{ $estate->price }}
<br>
{{ $estate->rooms }}
<br>
{{ $estate->extend }}
<br>
</p>
</div>
<div class="col-sm">
<button class="detail-btn">物件概要</button>
</div>
<hr style="width: 100%; margin:10px; border-color: #34495e;">
</div>
@endforeach
*MapController*
$estates = DB::table("allestates")
->get();
return view("home", compact('estates'));
*view*
function initMap(){
var options = {
zoom:8,
center:
'{!! $estates[0]->address !!}'
}
var map = new google.maps.Map(document.getElementById("map"), options);
var marker = new google.maps.Marker({
position:
@foreach($estates as $addr)
'{!! $addr->address !!}',
@endforeach
map:map
});
var infoWindow = new google.maps.InfoWindow({
content:'content here'
});
marker.addListener('click', function () {
infoWindow.open(map, marker);
})
}
Hatayi aldigim nokta ise bu kisim '{!! $estates[0]->address !!}' Burada console'da syntax hatasi veriyor.
yalniz debug yaptigimda console'da adres sutunundan cektigim datalar gozukuyor.
Ayrica bu sayfaya
www.mysite.com/home seklinde ulasiyorum, sayfada hic bir sorun yok. Hatayi aldigim yer login'e tikladigimda geliyor.
cunku login yapildiginda direk bu sayfaya atiyor.