Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何定义嵌套在UDT中的Cassandra CollectionMap,并使用多朔';s的PHP客户端库?_Php_Collections_Cassandra - Fatal编程技术网

如何定义嵌套在UDT中的Cassandra CollectionMap,并使用多朔';s的PHP客户端库?

如何定义嵌套在UDT中的Cassandra CollectionMap,并使用多朔';s的PHP客户端库?,php,collections,cassandra,Php,Collections,Cassandra,我有一个CollectionSet,其中UDT包含一个CollectionMap。在创建新的Cassandra\Type\CollectionSet以插入到表中时,我找不到任何文档或示例来说明如何定义它。有一个很好的例子是CollectionList(),它是这样的: // CollectionSet<UDT>, where UDT contains: Int, Text, Boolean, // CollectionList<Text>, CollectionList

我有一个
CollectionSet
,其中UDT包含一个
CollectionMap
。在创建新的Cassandra\Type\CollectionSet以插入到表中时,我找不到任何文档或示例来说明如何定义它。有一个很好的例子是
CollectionList
(),它是这样的:

// CollectionSet<UDT>, where UDT contains: Int, Text, Boolean, 
// CollectionList<Text>, CollectionList<UDT>

new Cassandra\Type\CollectionSet([
    [
        'id' => 1,
        'name' => 'string',
        'active' => true,
        'friends' => ['string1', 'string2', 'string3'],
        'drinks' => [['qty' => 5, 'brand' => 'Pepsi'], ['qty' => 3, 'brand' => 'Coke']]
    ],[
        'id' => 2,
        'name' => 'string',
        'active' => false,
        'friends' => ['string4', 'string5', 'string6'],
        'drinks' => []
    ]
], [
    [
    'type' => Cassandra\Type\Base::UDT,
    'definition' => [
        'id' => Cassandra\Type\Base::INT,
        'name' => Cassandra\Type\Base::VARCHAR,
        'active' => Cassandra\Type\Base::BOOLEAN,
        'friends' => [
            'type' => Cassandra\Type\Base::COLLECTION_LIST,
            'value' => Cassandra\Type\Base::VARCHAR
        ],
        'drinks' => [
            'type' => Cassandra\Type\Base::COLLECTION_LIST,
            'value' => [
                'type' => Cassandra\Type\Base::UDT,
                'typeMap' => [
                    'qty' => Cassandra\Type\Base::INT,
                    'brand' => Cassandra\Type\Base::VARCHAR
                ]
            ]
        ]
    ]
]
]);
这导致错误
捕获异常:从v0.7开始,集合类型应该有“definition”指令。
我也尝试使用“definition”而不是“value”。我的想法快用完了,任何帮助都将不胜感激。

使用“定义”而不是“价值”。我以前试过这个,但很明显我做错了别的事情,因为它起作用了

new Cassandra\Type\CollectionSet($udt_array, [[
                'type'=>Cassandra\Type\Base::UDT,
                'definition' => [
                    'map_name' => [
                        'type' => Cassandra\Type\Base::COLLECTION_MAP,
                        'definition' => [
                            Cassandra\Type\Base::INT,
                            Cassandra\Type\Base::BOOLEAN
                        ]
                    ]
                ]
            ]])
使用“定义”而不是“值”。我以前试过这个,但很明显我做错了别的事情,因为它起作用了

new Cassandra\Type\CollectionSet($udt_array, [[
                'type'=>Cassandra\Type\Base::UDT,
                'definition' => [
                    'map_name' => [
                        'type' => Cassandra\Type\Base::COLLECTION_MAP,
                        'definition' => [
                            Cassandra\Type\Base::INT,
                            Cassandra\Type\Base::BOOLEAN
                        ]
                    ]
                ]
            ]])