Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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
Vue.js Ajax请求上的Extbase UriBuilder和RealUrl_Vue.js_Typo3_Extbase_Typo3 8.x - Fatal编程技术网

Vue.js Ajax请求上的Extbase UriBuilder和RealUrl

Vue.js Ajax请求上的Extbase UriBuilder和RealUrl,vue.js,typo3,extbase,typo3-8.x,Vue.js,Typo3,Extbase,Typo3 8.x,我正在开发一个TYPO3插件,它在VueJS中输出一个记录列表。 因此,我创建了一个控制器操作,它将请求的记录作为json返回 每个记录都有一个属性“uri”,它将uri保存到其详细信息页面。我使用Extbase uriBuilder生成此uri 第一条记录直接加载到我的列表操作中,我将这组记录直接分配给前端的VueJs应用程序(v-bind:items=“my_json_objects”) 下一组记录将通过调用my API(返回相同类型的记录)按需加载 问题:当对象直接分配给VueJS时,ur

我正在开发一个TYPO3插件,它在VueJS中输出一个记录列表。 因此,我创建了一个控制器操作,它将请求的记录作为json返回

每个记录都有一个属性“uri”,它将uri保存到其详细信息页面。我使用Extbase uriBuilder生成此uri

第一条记录直接加载到我的列表操作中,我将这组记录直接分配给前端的VueJs应用程序(v-bind:items=“my_json_objects”)

下一组记录将通过调用my API(返回相同类型的记录)按需加载

问题:当对象直接分配给VueJS时,uriBuilder生成的uri仅在第一种情况下返回重写的url。对于ajax调用加载的所有项目,uribuilder返回未重写的url

两个操作都调用相同的方法来构建uri:

$item['uri'] = $this->buildShowUri($item);
return $this->uriBuilder
        ->reset()
        ->setTargetPageUid(56) // currently static, for testing
        ->setCreateAbsoluteUri(true)
        ->uriFor(
            'show',
            [
                'item' => $item,
            ]
        );
构建uri的方法:

$item['uri'] = $this->buildShowUri($item);
return $this->uriBuilder
        ->reset()
        ->setTargetPageUid(56) // currently static, for testing
        ->setCreateAbsoluteUri(true)
        ->uriFor(
            'show',
            [
                'item' => $item,
            ]
        );
有没有一种方法可以通过这种方式触发url重写?我是否需要将uri注册到realurl的某个位置


非常感谢任何提示。

多么愚蠢。uribuilder可以工作,但我忘了在页面类型中启用realurl,该页面类型提供json输出

json = PAGE
json {
config {
    linkVars = L(0-4)
    **tx_realurl_enable = 1**
    sys_language_mode = strict
    disableAllHeaderCode = 1
    debug = 0
    no_cache = 1
    additionalHeaders {
        10 {
            header = Content-Type: application/json
            replace = 1
        }
    }
}
typeNum = 129912

10 = USER
10 {
    userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
    extensionName = MyExt
    pluginName = Plug
    vendorName = Myself
    controller = Events
    action = apiList
    switchableControllerActions {
        Event {
            1 = apiList
        }
    }
}

}

可能您需要在uriFor方法中添加更多的信息(控制器、扩展、插件等),而不仅仅是操作名称。