我无法显示.$app->reactieDoor($topic['id']);
它会显示错误,我不知道为什么会这样做!请帮我。
Ps我是新手,所以如果我遗漏了代码中的内容,请告诉我。
与错误对齐:
echo ' laatste reactie: ' .$app->tijd_reactie($topic['id']) . ' door ' .$app->reactieDoor($topic['id']);
错误仅在我尝试使用此部分时显示:
.$app->reactieDoor($topic['id']);
功能代码:
function reactieDoor($topicid) {
$this->database->query("SELECT klanten.voornaam, klanten.achternaam FROM reacties
LEFT JOIN klanten ON klanten.id=reacties.klant_id
WHERE reacties.topic_id=:topic_id ORDER BY create_time DESC LIMIT 1");
$this->database->bind(":topic_id", $topicid);
$reactie = $this->database->single();
return $reactie;
}
我得错误
答案 0 :(得分:0)
.$app->reactieDoor($topic['id']);
该代码行为您提供数组而不是一个结果。 尝试var_dump结果。
var_dump( $app->reactieDoor($topic['id']) );
你会看到它是数组
答案 1 :(得分:0)
我猜测$this->database->single();
会返回一个数组(包含forename和surname),所以当你return $reactie;
来自该函数时,那是你正在尝试的数组插入字符串...因此错误。
由于该数组应包含forename和surname,请先尝试将其分配给$name
变量,然后再使用该变量。
类似的东西:
$name = "Mysterious Stranger";
if($n = $app->reactieDoor($topic['id'])) {
$name = "{$n['voornaam']} {$n['achternaam']}";
}
echo " laatste reactie: "
. $app->tijd_reactie($topic['id'])
. " door {$name}";
在函数中执行此操作可能会更好, if 该函数始终应返回包含名称的字符串。
在这种情况下,您可以将功能改为:
function reactieDoor($topicid) {
$this->database->query("SELECT klanten.voornaam, klanten.achternaam FROM reacties
LEFT JOIN klanten ON klanten.id=reacties.klant_id
WHERE reacties.topic_id=:topic_id ORDER BY create_time DESC LIMIT 1");
$this->database->bind(":topic_id", $topicid);
$reactie = $this->database->single();
return $reactie ?
"{$reactie['voornaam']} {$reactie['achternaam']}" :
"Mysterious Stranger";
}