0

次のように updateSingleValue を使用しています。

$updated = $this->app['storage']->updateSingleValue('suggestions', $id, 'votes', $value);

$idとは正しく設定されており(手動で整数を修正するように設定しても)、フィールドを持つcontenttype$valueが確実に存在します。それでも、この関数は を返し、失敗したことを示唆しています。suggestionsvotesfalse!$this->isValidColumn($field, $contenttype)

json 形式の Asuggestionは次のようになります。

suggestion": {
"id": "25",
"values": {
    "datechanged": "2015-01-03 13:25:02",
    "id": "25",
    "slug": "slug-o2sbdb",
    "datecreated": "2015-01-03 13:25:02",
    "datepublish": "2015-01-03 13:25:02",
    "datedepublish": "1900-01-01 00:00:00",
    "ownerid": "1",
    "status": "published",
    "title": "test title",
    "description": "test description",
    "votes": "0"
},

提案コンテンツ タイプは次のようになります。

suggestions:
    name: Suggestions
    slug: suggestions
    singular_name: Suggestion
    singular_slug: suggestion
    default_status: publish
    fields:
        title:
            label: Title
            type: text
            class: large
            required: true
            pattern: ".{2,255}" # see: http://html5pattern.com/
            error: "The Title field is required, and must contain at least 2 characters"
        description:
            label: Description
            type: textarea
        votes:
            label: Votes
            type: integer

ここで何が間違っているのでしょうか?

4

1 に答える 1

0

ここで問題が見つかりました updateSingleValue に渡されるコンテンツタイプは、スラッグの「提案」だけでなく、コンテンツタイプ全体である必要があります。ストレージ クラス メソッドを介して取得できます。

$app['storage']->getContentType('suggestions')

その結果を updateSingleValue メソッドに渡します。

于 2015-01-04T06:16:23.237 に答える