0

質問の最後の行を読んでください。

JviewHtml コンストラクターには次のステートメントが含まれています

$this->paths = isset($paths) ? $paths : $this->loadPaths();

$path 変数を使用して myview のデフォルト パスを設定し、それをコンストラクターに渡します。

$paths = new SplPriorityQueue;
$paths->insert(JPATH_COMPONENT . '/views/' . $viewName . '/tmpl', 'normal');

ネット Bean デバッガーで、コンストラクター $this->paths の次のステートメントを実行すると、$paths 変数の値が表示されません。両方のデータ型は splpriorityque ですが、

$this->paths = isset($paths) ? $paths : $this->loadPaths();

render の最初のステートメントは render() です

$path = $this->getPath($this->getLayout());

$path は false の値で返されます。

メイン ページに「レイアウト パスが見つかりません」というエラーが表示されます。その問題の解決策

更新: 最後の行のパスは splpriorityque $abc=$paths です。$this->paths=clone $paths

これら 2 つのステートメントの後、$abc は正しい値を示していますが、$this->paths には netbeans デバッガーで欠落または loastdata.

4

1 に答える 1

1

最初に、非常に愚かな間違いのため、この質問を削除することにしました。しかし、後で私はそのままでいることにしました。

NetBeans に設定上の問題またはバグがあり、$this オブジェクト メンバー "splpriorityqueue" を展開できませんでした。

$this->paths = isset($paths) ? $paths : $this->loadPaths();

上記のステートメントは完全に正しいです。

「レイアウトパスが見つかりませんでした」というエラーは、tmplフォルダーにtemplという名前を付けたためです。realpath() 関数を引き起こしていた

JPath::find() 

正しく動作しないこと。

于 2013-10-08T12:35:12.543 に答える