私はZendFrameworkにかなり慣れておらず、これを理解しようとしています。私のビュースクリプト(index.phtml)には、次のようなコードがあります。
<?php
function getErrorString($element)
{
echo "<pre>";
print_r($this);
echo "</pre>";
$string = '';
if(!empty($this->error[$element]))
{
$string = $string.'<label class="error" for="'.$element.'" generated="true">';
foreach($this->error[$element] as $error)
{
$string = $string.$error;
}
$string = $string.'</label>';
}
return $string;
}
echo "<pre>";
print_r($this);
echo "</pre>";
getErrorString("blah");
die();
それは私に与えます:
Fatal error: Using $this when not in object context in index.phtml on line XX
ビュー内で関数を作成すると、$this変数が失われるように思われます。私はネットで検索しましたが、自分がしていることを達成しようとしている人を他に見ることができません(おそらく、間違って検索している可能性があります)。
他のアプリを開発した過去の経験では、この関数を別のヘルパーに配置する必要がある理由がわかりません->特に、これが関数が呼び出される唯一の場所であるためです。
任意のアイデアをいただければ幸いです。