2014-09-24 33 views
0

在我的CakePHP的應用程序,當我試圖得到這樣的數據:如何在CakePHP中將整數轉換爲字符串?

$this->loadModel('Radio'); 
    $posts = $this->Radio->find('all'); 

的整數顯示像(調試)字符串:

'Radio' => array(
    'idSong' => '4', 
    'name' => 'batman', 
    'title' => 'Batman Theme Song' 
), 

爲什麼呢?該類型在數據庫中爲int。我需要整數正確地顯示在我的JSON文件

+0

這不是一個CakePHP的問題本身改變模型數據,但是PHP的PDO類就是這樣做的。有一些設置可以防止這種情況的發生:http://www.dereuromark.de/2014/08/05/all-new-cakephp-tips-summer-2014/#mysql-and-returning-integers – mark 2014-09-24 10:44:20

回答

1

不知道如果有一個簡單的解決方案,但你可以使用afterfind

喜歡的東西

public function afterFind($results, $primary = false) { 
    foreach ($results as $key => $val) { 
     if (isset($val['Radio']['idSong'])) { 
      $results[$key]['Radio']['idSong'] = (int)$results[$key]['Radio']['idSong']; 
     } 
    } 
    return $results; 
} 
+0

我把你的代碼和結果是一樣的:http://www.monde-du-rat.fr/API/moulinette/radio/posts(參見debug),在json中也是http://www.monde-du-rat.fr/ API/moulinette/radio/posts.json – JoDiii 2014-09-24 12:52:47

+0

可能會在'afterFind'內添加'var_dump($ results)'並查看記錄的外觀?我認爲afterfind功能是正確的模式,對吧? – cornelb 2014-09-24 12:54:17

+0

是的,我犯了一個錯字:p thks! – JoDiii 2014-09-24 13:26:14