2014-05-11 76 views
0

我對php和smarty很陌生。使用class with smarty

我想調用一個函數,但不明白爲什麼它是未定義的。 這裏是我的代碼:

 
include 'header.php'; 

include 'template/footer.tpl'; 

class indexmessage{ 

    function message(){ 

     global $pdo; 

     $query = $pdo->prepare("SELECT * FROM hovedside WHERE id = 1"); 
     $query->execute; 

     return fetchAll(); 

    } 
} 


$smarty->assign('indexmessage', message()); 

$smarty->display('index.tpl'); 

我在做什麼錯?

回答

1

因爲message功能是indexmessage的方法。這與Smarty無關,它只是基本的OOP。

$index = new indexmessage(); 
$message = $index->message(); 
$smarty->assign("indexmessage",$message); 
+0

所以當我打電話的時候,我用{$ message}?我現在得到這個錯誤 公告:未定義的屬性:PDOStatement對象:: $執行在my_path的/ index.php的第14行 致命錯誤:在my_path的/ index.php文件調用未定義功能使用fetchall()上線16 – Magnus

+0

那因爲它應該是'$ query-> execute();'和'return $ query-> fetchAll();'你真的應該在進一步閱讀之前閱讀基本OOP ... –

+0

Ty :)是的, m試試^^, – Magnus