1

backbone.js を学習しようとしているので、 https://github.com/ccoenraets/backbone-cellarからこのコードを取得しました。Slim.php を使用して新しいモデルをデータベースに追加しようとすると、500 (Internal Server Error) が表示されます。しかし、フェッチ、更新、削除しようとすると、うまくいきます。追加時にのみエラーが表示されるのはなぜですか?

助けてください、ありがとう。

    window.WineView = Backbone.View.extend({

        initialize: function () {
            this.render();
        },

        render: function () {
            $(this.el).html(this.template(this.model.toJSON()));
            return this;
        },

        events: {
            "click .save"   : "beforeSave",
            "click .delete" : "deleteWine"

        },

        beforeSave: function () {
            var self = this;
            var check = this.model.validateAll();
            if (check.isValid === false) {
                utils.displayValidationErrors(check.messages);
                return false;
            }

            // Upload picture file if a new file was dropped in the drop area
            if (this.pictureFile) {
                this.model.set("picture", this.pictureFile.name);
                utils.uploadFile(this.pictureFile,
                    function () {
                        self.saveWine();
                    }
                );
            } else {
                this.saveWine();
            }
            return false;
        },

        saveWine: function () {
            var self = this;
            this.model.save(null, {
                success: function (model) {
                    self.render();
                    app.navigate('wines/' + model.id, false);
                    utils.showAlert('Success!', 'Wine saved successfully', 'alert-success');
                },
                error: function () {
                    utils.showAlert('Error', 'An error occurred while trying to add this item', 'alert-error');
                }
            });
        },

        deleteWine: function () {
            this.model.destroy({
                success: function () {
                    alert('Wine deleted successfully');
                    window.history.back();
                }
            });
            return false;
        }

    });
4

1 に答える 1

2

私も同じ問題を抱えていました。/tutorial/api ディレクトリ内。index.php を開き、関数 addWine() の最初の行を探します。

error_log('addWine\n', 3, '/var/tmp/php.log');

その行にコメントしてください:

//error_log('addWine\n', 3, '/var/tmp/php.log');

これはあなたの問題を解決するはずです、それは確かに私のものでした。

于 2012-07-16T15:58:29.943 に答える