2014-05-11 53 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