-1

控制器在使用Facebook登錄時的代碼。在這裏,請求位置,我確實從Facebook獲得價值。但問題是,當我在瀏覽頁面上提供位置信息時,我只需要名稱不是id。它說錯誤的數組到字符串轉換。陣列到字符串轉換錯誤時,從facebook圖表檢索位置api

{ 
"id": "1069347886434951", 
"name": "Saugat Thapa", 
"location": { 
"id": "106085869430478", 
"name": "Kathmandu, Nepal" 
    } 
} 



public function web_login() 
{ 
    $data['user'] = array(); 

    // Check if user is logged in 
    if ($this->facebook->is_authenticated()) 
    { 
     // User logged in, get user details 
     $location= $this->facebook->request('get', '/me?fields=location{id,name}'); 
     if (!isset($user['error'])) 
     { 
      $data['location'] = $location; 
     } 

    } 

    // display view 
    $this->load->view('examples/web', $data); 
} 
上視圖

<?php foreach ($location as $key => $value) : ?> 

       <li><?php echo $key; ?> : <?php echo $value; ?></li> 

      <?php endforeach; ?> 
+0

  • <?php var_dump($ key); ?>:<?php echo var_dup($ value); ?>
  • +0

    並告訴我們你得到了什麼 –

    +0

    好吧,我得到了我想要的值。 string(8)「location」:array(2){[「name」] => string(16)「尼泊爾加德滿都」[「id」] => string(15)「106085869430478」} AND string(2)「編號「:字符串(16)」1069347886434951「 –

    回答

    1

    改變這個<?php echo $value; ?><?php echo $value['name']; ?>

    代碼放在這裏

    <?php break; ?> // break 
    

    中斷循環的,因爲陣列中的下一個元素是一個字符串,它會產生一個錯誤illegal string offset和因爲你只想要它的名字很好

    +0

    我得到的價值打印,但它出現了額外的錯誤,說'非法字符串偏移'名稱'' –

    +0

    用單引號替換雙引號''並告訴我你得到了什麼 –

    +0

    我已經使用單引號,而不是雙引號 –