0

knexJSで特定のタイプの列を作成するにはどうすればよいですか?

私はテーブルUsersを持っています:

id serial NOT NULL,
id_file_avatar bigint,
id_sectors bigint NOT NULL,
name character varying(50),
email character varying(100)

私が休憩に入ったとき、私はそれを手に入れました:

{  
  "user": {
    "id": 1,
    "id_file_avatar": null,
    "id_sectors": "0",
    "name": "Rodrigo Lopes",
    "email": "rodlps22@gmail.com"
  }
}

私のユーザーモデル

var User = bookshelf
    .Model
    .extend({
        tableName: 'users',
        visible: [
            'id',
            'id_file_avatar',
            'id_sectors',
            'name',
            'email'
        ],
        soft: false,

        initialize: function () {
            //this.on('saving', this.validateSave);
        },

        validateSave: function () {
            return new Checkit(rules).run(this.attributes);
        }
    });

しかし、id_sectorsint 型である必要があります。その理由は誰にもわかりますか?

助けてくれてありがとう。

4

1 に答える 1

2

実際に整数として保存してもよろしいですか? id_sectors

ドキュメントから:

たとえば、次のようnew Model({id: '1'}).load([relations...])には返されませんModel({id: 1}).load([relations...])。ID が文字列の場合と数値の場合があることに注意してください。URL パラメーターから ID を取得する場合、これはよくある間違いです。

モデルにバリデーターを使用してみてくださいid_sectors。整数でなければなりません: https://github.com/fluxxu/bookshelf-validator

さらに、これが機能しない場合は、いつでも を使用parseIntして文字列値を整数に変更できます。

属性タイプでモデルを定義することに関しては、(現在) 可能ではないと思います。

于 2015-06-14T09:02:05.903 に答える