模板因不存在php错误而失败
我和斯派尔和斯马特一起工作。我有一个模板因不存在php错误而失败,php,smarty,propel,Php,Smarty,Propel,我和斯派尔和斯马特一起工作。我有一个servicios.php文件,它只包含: include('private/autoload.php'); // Servicios Todos $servicios = ServicioQuery::Create()->orderByTitulo(Criteria::ASC)->find()->toArray(); $smarty->assign('servicios',$servicios); // Servicio a mo
servicios.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');
<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>
文件servicio.tpl
包含:
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');
<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>
所以,问题是,Css样式无法加载。使用Firebug show,不打印Css代码,而是打印:
致命错误:调用上的成员函数toArray()
非宾语
/media/Datos/www/pilarmediinaestica/owner/servicios.php on
第15行
但是,由于数据显示正确,且$servicio
的var_dump
不标记错误,因此错误很少:
数组(7){[“idServiceIO”]=>int(1)[“idstiti”]=>int(1)[“Titulo”]=>
字符串(15)“服务演示1”[“描述”]=>字符串(979)“空值
艾库利斯·艾格特·佩伦茨克·努克·尼西·艾库利斯·埃格特·佩伦茨克·努克·尼西·艾库利斯。”
[“Slug”]=>string(17)“servicio_demo_uno”[“Shares”]=>int(1)
[“Activo”]=>bool(真)}
在index.php中,执行相同的步骤,即可工作。为什么不在这里?有什么想法吗 错误是我传递了一个错误的slug,查询返回了一个空集合jiji。
调用非对象上的成员函数toArray()
您的对象不是对象,而是数组?@Bondye$servicio
是“servicio”类的对象。如果我尝试传递对象,Smarty会说:致命错误:无法在…中使用Servicio类型的对象作为数组,而不是使用{$Servicio.Titulo}
无法传递对象而不是创建数组。像这样{$servicio->Titulo}
?否则,请尝试在$servicio->toArray()前后打印($servicio)
,并进行比较。