4

以前の質問に続いて、xml ファイルを Zend_Navigation にロードする際にまだ問題があります。

次のエラー メッセージが表示されます。

<b>Fatal error</b>:  Uncaught exception 'Zend_Navigation_Exception' with message 'Invalid argument: Unable to determine class to instantiate' in C:\www\mysite\development\website\library\Zend\Navigation\Page.php:223

私は自分の navigation.xml ファイルをZend Documentationの例に似たものにしようとしましたが、うまく動作しないようです。私の XML ファイルは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<configdata>
 <navigation>

    <default>
        <label>Home</label>
        <controller>index</controller>
        <action>index</action>
        <module>default</module>
        
        <pages>
            <tour>
                <label>Tour</label>
                <controller>tour</controller>
                <action>index</action>
                <module>default</module>
            </tour>
            
            <blog>
                <label></label>
                <uri>http://blog.mysite.com</uri>                   
            </blog>
            
            <support>
                <label>Support</label>
                <controller>support</controller>
                <action>index</action>
                <module>default</module>
            </support>
        </pages>
     </default>
     
     <users>
        <label>Home</label>
        <controller>index</controller>
        <action>index</action>
        <module>users</module>
        <role>guser</role>
        <resource>owner</resource>
        
        <pages>
            
            <jobmanger>
                <label>Job Manager</label>
                <controller>jobmanager</controller>
                <action>index</action>
                <module>users</module>
                <role>guser</role>
                <resource>owner</resource>
            </jobmanger>
            
            <myaccount>
                <label>My Account</label>
                <controller>profile</controller>
                <action>index</action>
                <role>guser</role>
                <resource>owner</resource>
                <module>users</module>
                <pages>
                    
                    <detail>
                        <label>Account Details</label>
                        <controller>profile</controller>
                        <action>detail</action>
                        <module>users</module>
                        <role>guser</role>
                        <resource>owner</resource>
                        
                        <pages>
                            <history>
                                <label>Account History</label>
                                <controller>profile</controller>
                                <action>history</action>
                                <module>users</module>
                                <role>guser</role>
                                <resource>owner</resource>
                            </history>
                            
                            <password>
                                <label>Change Password</label>
                                <controller>profile</controller>
                                <action>changepwd</action>
                                <module>users</module>
                                <role>employer</role>
                                <resource>employers</resource>
                            </password>
                        </pages>
                    </detail>

...
</navigation>
</configdata>

次のように、この xml をブートストラップにロードしています。

 $configNav = new Zend_Config_Xml('../application/config/navigation.xml', 'navigation');
 $navigation = new Zend_Navigation($configNav);
 $navView->navigation($navigation);

今、私はこれでスティックの完全に間違った終わりを迎えたことを告白しますが、急速にアイデアがなくなり、長い一週間が経ちました.

ありがとう、

許す

4

2 に答える 2

3

Zend_Navigationは、コントローラー、アクション、およびモジュールキーのいずれかの存在を確認することにより、MvcページまたはURIページを使用するかどうかを決定するように見えます。またはURIキー。報告しているエラーは、これらの条件のいずれも満たされない場合に生成されます。XMLドキュメントのすべての例は問題ないように見えるので、XMLファイルのある時点で、ページの1つに必要なキーの1つが欠落していると思います。たとえば、アクションとコントローラーはありますが、モジュールはありません。

問題の原因を特定できない場合は、次を挿入して、一時的にデバッグ行をZend_Navigationに追加することをお勧めします。

var_dump($options);exit;

Zend / Navigation/Page.phpの222行目に。これにより、エラーの原因となっている要素のキーが出力されます。これは、XMLドキュメント内のどのキーであるかを判断するのに役立ちます。修正したら、この行をもう一度削除してください。

于 2010-04-02T13:57:01.023 に答える