Yii2类Closure的对象无法转换为字符串

时间:2015-05-08 06:02:05

标签: php yii2 anonymous-function

我有错误 Closure类的对象无法转换为字符串 在这个代码上

'class' => \dosamigos\grid\EditableColumn::className(),
            'attribute' => 'remidi3',
            'url' => function($data){return ['update?id=remidi3&dataid'.$data->id];},
            'type' => 'text',
            'editableOptions' => [
                'mode' => 'inline',
            ]

即使我尝试改变

'url' => function($data){return ['update?id=remidi3&dataid'.$data->id];}

进入

'url' => function($data){return 'update?id=remidi3&dataid'.$data->id;},

我需要在可编辑网格的网址中显示ID,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

根据源代码和PHPDoc,你不能在这里指定闭包。

PHPDoc说:

/**
 * @var string the url to post
 */
 public $url;

源代码中的用法:

if ($this->url === null) {
    throw new InvalidConfigException("'Url' property must be specified.");
}

...

$url = (array) $this->url;
$this->options['data-url'] = Url::to($url);

如您所见,它已转换为数组,然后由Url::to()处理,因此有效类型为字符串和数组。

我认为您不需要在网址中指定id,它应该根据您使用的行自动生成。