2016-05-31 9 views
0

私はデータベースからデータを同期させてGoogleマップに表示する必要があるlaravel-5アプリケーションに取り組んでいます。 C:\ xamppの\ htdocsに\ APPL \リソースJavascript/Laravel-5 Google Mapsコードでphp変数が機能しないのはなぜですか?

は非オブジェクト(ビューのプロパティを取得しようとすると:私は遭遇しています問題は、私は、コードを実行するたびに、それは私に言うエラーを与えることです次のように\ビュー\ getmap6.blade.php)

私のページのコードは次のとおりです。

<!DOCTYPE html> 
<html> 
<head>     

<script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyCVL8zAciHqjdNLW6oPyKZSfNvCgrL9D5A"></script> 
<script> 

      function initialize() 
       { 
        var mapProp = { 
            center:new google.maps.LatLng(51.508742,-0.120850), 
            zoom:13, 
            mapTypeId:google.maps.MapTypeId.ROADMAP 
            }; 

        var map=new google.maps.Map(document.getElementById("googleMap"),mapProp); 
        var infowindow = null; 

        <?php for($i=1; $i<3; $i++) 
          { 
           $offLinks = App\offerlink::find($i); 
        ?>    

        var marker=new google.maps.Marker({ 
               position: new google.maps.LatLng(<?php echo $offLinks->lat; ?>,<?php echo $offLinks->lng; ?>), 
               icon: 'http://labs.google.com/ridefinder/images/mm_20_blue.png' 
              }); 

        marker.setMap(map); 

        infowindow = new google.maps.InfoWindow({ 
                   content: "<b>Name: </b>" + "<?php echo $offLinks->name; ?>" + "<br> <b>Address: </b>" + "<?php echo $offLinks->address; ?>", 
                  }); 



        infowindow.open(map,marker); 

             google.maps.event.addListener(marker, 'click', function() { 

                       infowindow.setContent(marker); 
                       infowindow.open(map,this); 
                       }); 

          <?php } ?> 


        google.maps.event.addListener(marker, 'click', function() { 

                       infowindow.setContent(marker); 
                       infowindow.open(map,this); 
                       });  

       } 

       google.maps.event.addDomListener(window, 'load', initialize); 

</script> 
</head> 

<body> 
<div id="googleMap" style="width:500px;height:380px;"></div> 
</body> 

</html> 

このコードは、phpMyAdminのデータベースに同期するローカルサーバ上で動作します。他のページには、データベースに接続しようとするときに問題はありません。このページには問題があります。私は「のように何かが間違っている、

position: new google.maps.LatLng(<?php echo $offLinks->lat; ?>,<?php echo $offLinks->lng; ?>), 

と明らかに

content: "<b>Name: </b>" + "<?php echo $offLinks->name; ?>" + "<br> <b>Address: </b>" + "<?php echo $offLinks->address; ?>", 

:私はので、それらの線せずに、エラーがないため、問題は、次のコード行にあることを知っていますPHP変数を使用しようとしています。私はこのコードが数日前に問題なく動作していたと信じています。

ありがとうございました。

+0

このエラーは、PHPまたはJavaScriptから来ますか?どの特定のコード行が実際にエラーを生成していますか?そのオブジェクトはどこで初期化されると思いますか? – David

+0

質問では、エラーを生成していると思われる2つの行について特に言及しました。 –

+0

したがって、$ offLinkはオブジェクトではありませんか?それを設定する行のような音はnullまたはfalseまたはその性質のものを返す。このコードのようには思われません。 – David

答えて

0

あなたは誤ってPHP変数にアクセスしていると思います。 ただ

$offLinks[$i]->name 
+0

私はアプリケーションの他のページでデータベースデータにアクセスするために同じフォーマットを使用していますが、正常に動作します。私もあなたのフォーマットを使用しようとしましたが、問題は依然として続きます。 –

0

は、それはあなたのモデルのコール$offLinks = App\offerlink::find($i)$iのための任意の結果が返されていない可能性があり、したがって、$offLinksが有効なオブジェクトではありません..以下を試してみてください。 dump($offLinks)を使用して$offLinksが実際にオブジェクトであることを確認してください。または、モデルが見つからない場合は、明確なエラーを表示する$offLinks = App\offerlink::findOrFail($i)への呼び出しを単に変更することができます。

関連する問題