2013-07-26 50 views
0

即時通訊工作與Propel和Smarty。我有一個servicios.php文件,只包含:模板失敗,不存在的PHP錯誤

include('private/autoload.php'); 

// Servicios Todos 
$servicios = ServicioQuery::Create()->orderByTitulo(Criteria::ASC)->find()->toArray(); 
$smarty->assign('servicios',$servicios); 

// Servicio a mostrar 
$servQry = ServicioQuery::Create(); 
if($url->getParam(3) == '') { 
    $servicio = $servQry->findOneByIdservicio(1); 
}else{ 
    $servicio = $servQry->findOneBySlug($url->getParam(3)); 
} 

// Error Line ? 
$servicio = $servicio->toArray(); 


$smarty->assign('servicio',$servicio); 

$smarty->display('templates/servicio.tpl'); 

文件servicio.tpl包含:

<html> 
<head> 
    {include file="html_head.tpl"} 
</head> 
<body> 
.... 
<h2>{$servicio.Titulo}</h2> 
<div class="span3"> 
    <img class="borderFoto" src="assets/img/servicios/{$servicio.Slug}.jpg" alt="{$servicio.Slug}.jpg" /> 
</div> 
<div class="span7"> 
    {$servicio.Descripcion} 
</div> 
</body> 
</html> 

html_head.tpl

<title>Pilar Medicina Est&eacute;tica</title> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<link href='http://fonts.googleapis.com/css?family=PT+Sans' rel='stylesheet' type='text/css'> 
<link href='http://fonts.googleapis.com/css?family=Arvo' rel='stylesheet' type='text/css'> 
<link rel="stylesheet" type="text/css" href="assets/bootstrap/css/bootstrap.min.css"> 
<link rel="stylesheet" type="text/css" href="assets/css/style.css"> 

所以,問題是,CSS樣式不加載。隨着Firebug的顯示,而不是打印的CSS代碼,打印:

Fatal error: Call to a member function toArray() on a non-object in /media/Datos/www/PilarMedicinaEstetica/owner/servicios.php on line 15

但是,錯誤是罕見的,因爲數據是正確顯示和$serviciovar_dump不標記錯誤:

array(7) { ["Idservicio"]=> int(1) ["Idsitio"]=> int(1) ["Titulo"]=> string(15) "Servicio demo 1" ["Descripcion"]=> string(979) "Nulla commodo commodo iaculis...eget pellentesque nunc nisi ac sem." ["Slug"]=> string(17) "servicio_demo_uno" ["Shares"]=> int(1) ["Activo"]=> bool(true) }

在index.php,做同樣的步驟,並工作。爲什麼不在這裏?有任何想法嗎 ?。

+0

'調用成員函數toArray()在一個非對象'你的對象不是一個對象,但已經是一個數組? –

+0

@Bondye'$ servicio'是「Servicio」類的一個對象。如果我嘗試傳遞該對象,Smarty說:**致命錯誤:不能使用Servicio類型的對象作爲數組... ** – ramiromd

+0

嗯,而不是使用'{$ servicio.Titulo}'不能傳遞對象而不是創建一個數組。像這樣'{$ servicio-> Titulo}'?否則試着在'$ servicio-> toArray()'之前和之後'print_r($ servicio)'並比較它們。 –

回答

0

錯誤是我通過一個錯誤的slu and,並且查詢返回一個空的集合jiji。