2017-03-23 111 views
1

我正在使用Google APIs Client Library for PHP,我目前正在使用Codeigniter框架。當我在API代碼中手動輸入ISBN編號時,我可以顯示書名和圖像。適用於PHP的Google API庫循環

表中的每個結果都應顯示來自Google圖書的相應標題和圖片。

任何幫助,將不勝感激與此。此外,如果我的代碼可以改進,我很樂意聽到,我仍然在學習:)

我目前的工作代碼如下;

控制器

class Items extends CI_Controller { 

    public function index() { 
     $data['items'] = $this->items_model->itemList(); 
// var_dump($data['items']) returns the following (http://pastebin.com/4XVS4Whb) 

     $client = new Google_Client(); 
     $client->setApplicationName("Client_Library_Examples"); 
     $client->setDeveloperKey("MyKeyHere"); 
     $service = new Google_Service_Books($client); 
     $isbn = '0-7515-3831-0'; // <- I need to replace this with my DB array 
     $results = $service->volumes->listVolumes($isbn); 

     foreach ($results as $item) { 
// var_dump($results) returns the following (http://pastebin.com/by50uLNq) 
// var_dump($item) returns the following (http://pastebin.com/b4vdt38P) 

      $bookTitle = $item['volumeInfo']['title']; 
      $bookImage = $item['volumeInfo']['imageLinks']['smallThumbnail']; 
      $data['bookTitle'] = $bookTitle; 
      $data['bookImage'] = $bookImage; 
     } 
     $this->load->view('item_view', $data); 
    } 
} 

型號

class Items_model extends CI_Model { 
    public function itemList() { 
     $query = $this->db->get('item', 10); 
     return $query->result_array(); 
    } 
} 

查看

<table> 
     <tr> 
      <td><strong>Title</strong></td> 
      <td><strong>Image</strong></td> 
     </tr> 
     <tr> 
      <td><?php echo $bookTitle ?></td>   
      <td><?php echo echo '<img src="'.$bookImage.'">';?></td>  
     </tr> 
</table> 
+0

能否請您提供這個'的var_dump輸出($數據[」項目']);''和''var_dump($ results);'從你的控制器。我將能夠提供並回答。 –

回答

2

既然你已經有了收藏數據,你可以簡單地把它傳遞到視圖和迭代的觀點本身,因爲:

... 
$service = new Google_Service_Books($client); 
$isbn = '0-7515-3831-0'; 
$results = $service->volumes->listVolumes($isbn); 
//pass in the $results to you view 
$this->load->view('item_view', $results); 

,並在視圖

foreach ($results as $item) : ?> 
    <td><?php echo $item['volumeInfo']['title']; ?></td> 
    .... 
<?php endforeach; ?>