1

PencilBlue サイトのサインアップ フォームにユーザー ロール フィールドを追加しようとしています。独自のプラグインを作成し\controllers\actions\user\sign_up.jsgetRoutes.

今、このエラーが発生しています:Cannot set property 'position' of null.新しいプラグインの作成に必要なすべてのことを行いました。コアsign-up.jsファイルを編集すると、すべて正常に動作します

var user_type = post.admin['id'];
        if(user_type == 0){
            post.admin      = pb.SecurityService.ACCESS_USER;
        } else {
            post.admin      = pb.SecurityService.ACCESS_WRITER;
        }

プラグインで使用するとエラーが発生します。私はこのようにgetRoutesを設定しました

SignUp.getRoutes = function(cb) {
        var routes = [
            {
                method: 'post',
                path: '/actions/user/sign_up',
                auth_required: false,
                content_type: 'application/json'
            }
        ];
        cb(null, routes);
    };

テンプレートHTMLファイルは投稿値を問題なく渡しています。私のプラグイン コントローラ ディレクトリの構造はフラットなので、コア セットアップに続くサブディレクトリはありません。まさに PB チームからのアドバイスどおりです。

4

1 に答える 1

2

このスレッドに従って、追加してください

request_body: ['application/json', 'application/x-www-form-urlencoded', 'multipart/form-data']

内部getRoutes

以下のようになります。

SignUp.getRoutes = function(cb) {
        var routes = [
            {
                method: 'post',
                path: '/actions/user/sign_up',
                auth_required: false,
                content_type: 'application/json',
                request_body: ['application/json', 'application/x-www-form-urlencoded', 'multipart/form-data']
            }
        ];
        cb(null, routes);
    };
于 2016-07-07T18:03:44.747 に答える