【问题标题】:Can I pass a dictionary object to Restler?我可以将字典对象传递给 Restler 吗?
【发布时间】:2014-06-12 05:41:27
【问题描述】:

我知道我可以将 'array' 指定为数组的类型,但是当我想将字典类型传递给使用 Restler 3 的方法时应该使用什么?

传递给 POST 方法的整个“外部”块当然是字典类型,但现在我希望其中一个参数也是字典类型。

【问题讨论】:

    标签: php restler


    【解决方案1】:

    请求中的字典

    将字典定义为具有公共属性的类

    class Object
    {
        public $property = 'value';
    
        /** 
         * @var string {@required false} 
         */
        public $optional = 'value';
    
        //add more properties here
    }
    

    让你的 api 方法使用它作为它的参数之一

    class Api
    {
        public function method(Object $obj, $name)
        {
            //use $obj->property here
        }
    }
    

    响应字典

    您可以为此目的使用关联数组(带有字符串索引的数组)或stdClass 的实例

    return array {
    
        'name' => 'Gargoyle'
        'object' => array {
            'property' => 'value'
        }
    
    };
    

    $r = new stdClass();
    $r->name = 'Gargoyle';
    $r->object = new stdClass();
    $r->object->property = 'value';
    return $r;
    

    两者都会输出 JSON 对象

    【讨论】:

    • 我知道如何在 PHP 本身中创建一个 assoc 数组,但我正试图弄清楚如何使它与 restler REST api 一起工作。
    • 我不确定我能得到你想要的!您是否尝试将字典作为 API 方法的属性之一传递并想知道如何接收它?
    • 正确。我不确定在方法注释中的 @param 之后应该放什么。
    • 我已经为你更新了答案!如果您需要实际示例,请参阅restler3.luracast.com/examples/_016_forms/readme.html
    • 我注意到如果我像你一样在一行上添加@var 注释,我会得到“第 559 行的 .../Routes.php 中不支持的操作数类型”。使其成为多行格式不会引发异常。
    猜你喜欢
    • 2017-10-09
    • 2012-04-16
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多