1

Zend Framework 2 用の KJSencha モジュールを使用して、ExtJS を操作しています。モジュールはドキュメントに従って構成されました。他のすべてのことはうまくいきます。

アプリケーションとバックエンドのモジュールが必要です。アプリケーションは空ですが、layout.phtml が定義されています。バックエンド モジュールには、空の indexAction() を持つ index.phtml と IndexController があります。

Backend\Direct\Model には、Object、Single、および Collection の 3 つのモデルがあります。それらは直接に使用されます。

バックエンド\config\module.config.php

'kjsencha' => array(
    'direct' => array(
        'services' => array(
            'Direct.Tree' => 'Backend\Direct\Model\Tree',
            'Direct.Single' => 'Backend\Direct\Model\Object',
            'Direct.Collection' => 'Backend\Direct\Model\Collection',
        ),
    ),
)

Object->update() をフォームハンドラーにしたいです。

理由を見つけるために数時間を費やしましたが、apiBuilder はまだ「formHandler: true」をメソッドに追加しません。

これ以外に何かすることはありますか?

namespace Backend\Direct\Model;

class Object extends \Backend\Direct\Entity
{
    // .....

    /**
     * @\KJSencha\Annotation\Formhandler
     *
     */

    public function update($entity, $id)
    {
        // TODO: Implement update() method.
        return array();
    }
    // .....
}

アプリケーション\ビュー\レイアウト\レイアウト.phtml

<?php
    echo $this->doctype(); ?>
<html lang="en">
<head>
    <meta charset="utf-8">
    <?php echo $this->headTitle('PROM-PC v.2') ?>
<?php

    echo $this->headLink();
    echo $this->headScript();
    ?>
</head>
<body>
<?php

    echo $this->content;
    echo $this->inlineScript();
?>

</body>
</html>

バックエンド\ビュー\バックエンド\インデックス\index.phtml

<?php

$this->extJs()->loadLibrary();

// load custom variables set in configuration
$this->kjSenchaVariables();

// add loader configuration, which tells where ExtJs classes have to be loaded from
$this->kjSenchaLoaderConfig();

// preloads modules required to get the app running
$this->kjSenchaDirectApi();

// loads your actual application script (usually at the end of your body tag)
$this->inlineScript()->appendFile($this->basepath() . '/backend/js/app.js');

結果は次のとおりです。

Ext.direct.Manager.addProvider({"type":"kjsenchamoduleremoting","url":"\/kjsencha\/rpc\/","actions":{"Direct.Tree":[{"name":"read","len":2},{"name":"update","len":2},{"name":"create","len":2},{"name":"destroy","len":2}],"Direct.Single":[{"name":"read","len":2},{"name":"create","len":2},{"name":"update","len":2},{"name":"destroy","len":2}],"Direct.Collection":[{"name":"read","len":2},{"name":"create","len":2},{"name":"update","len":2},{"name":"destroy","len":2}],"KJSencha.echo":[{"name":"__construct","len":1},{"name":"greet","len":1}]}});
4

1 に答える 1

0

これは、 Zend_Reflection が特定のクラスの docblock を取得しないのと同じ問題です。

解決策: 行末を Windows スタイルから Unix スタイルに変換してみてください。

Zend\Reflection のバグですか?

于 2013-02-04T13:29:14.740 に答える