TYPO3 6.2:"Could not find a suitable type converter for "字符串“”更新后异常
TYPO3 6.2: "Could not find a suitable type converter for "String" " exeption after update
TYPO3 是从一个非常旧的版本更新到 TYPO3 6.2。大多数事情现在都在工作,但我有一个自己的书面扩展,它给我以下错误:
Core: Exception handler (WEB): Uncaught TYPO3 Exception: #1297759968: Exception while property mapping at property path "":Could not find a suitable type converter for "String" because no such class or interface exists. | TYPO3\CMS\Extbase\Property\Exception thrown in file /srv/vhosts.d/typo3_src-6.2.9/typo3/sysext/extbase/Classes/Property/PropertyMapper.php in line 106.
我在其中一个生成 link:
的控制器中有一个列表方法
<f:link.action action="show" arguments="{id : course.id}"> {course.name}</f:link.action>
这个列表方法有效,但是当我想在网站上打开这个生成的 link 时,我从上面得到了错误。
我删除了 showAction
方法中的所有内容,并将模板更改为没有特殊内容的基本输出。该方法看起来像这样:
/**
* action show
*
* @param String Course-Id
* @return void
*/
public function showAction($id){
}
但是错误依然存在。我完全不知道是什么问题了。如果有人有不同的看法并且有一些想法,我可以尝试找出问题的真正原因,那就太好了。
我认为需要
/**
* action show
*
* @param string $id Course-Id
* @return void
*/
public function showAction($id){
}
string
小写和参数 $id
也必须指定
我想分享我的解决方法:
第一个问题是不知道有没有新的删除核心缓存的方法。我发现是因为 Jost 在我的回答中用 "clear the cache from install tool" 发表评论。所以我进入 Typo3 的后端编辑用户并在 Options 和 TSconfig 字段下编辑我自己的用户。我在那里添加了一行 options.clearCache.system = 1
。现在我可以通过Typo3 后端的flash 符号清除系统内核。
之后我尝试更改 @param string
中的 @param String
。我删除了核心缓存,然后我得到了一个不同的错误。我发现这个新错误表明只有 arrays
或 objects
是操作方法中允许的参数(参见:http://wiki.typo3.org/Exception/CMS/1253175643)。
所以我删除了参数并按照解释错误的网站上的说明进行操作。所以我的新方法如下所示:
/**
* action show
*
* @return void
*/
public function showAction(){
if ($this->request->hasArgument('id')) {
$id= $this->request->getArgument('id');
}
// Do stuff with the id
}
现在可以了:)
TYPO3 是从一个非常旧的版本更新到 TYPO3 6.2。大多数事情现在都在工作,但我有一个自己的书面扩展,它给我以下错误:
Core: Exception handler (WEB): Uncaught TYPO3 Exception: #1297759968: Exception while property mapping at property path "":Could not find a suitable type converter for "String" because no such class or interface exists. | TYPO3\CMS\Extbase\Property\Exception thrown in file /srv/vhosts.d/typo3_src-6.2.9/typo3/sysext/extbase/Classes/Property/PropertyMapper.php in line 106.
我在其中一个生成 link:
的控制器中有一个列表方法<f:link.action action="show" arguments="{id : course.id}"> {course.name}</f:link.action>
这个列表方法有效,但是当我想在网站上打开这个生成的 link 时,我从上面得到了错误。
我删除了 showAction
方法中的所有内容,并将模板更改为没有特殊内容的基本输出。该方法看起来像这样:
/**
* action show
*
* @param String Course-Id
* @return void
*/
public function showAction($id){
}
但是错误依然存在。我完全不知道是什么问题了。如果有人有不同的看法并且有一些想法,我可以尝试找出问题的真正原因,那就太好了。
我认为需要
/**
* action show
*
* @param string $id Course-Id
* @return void
*/
public function showAction($id){
}
string
小写和参数 $id
也必须指定
我想分享我的解决方法:
第一个问题是不知道有没有新的删除核心缓存的方法。我发现是因为 Jost 在我的回答中用 "clear the cache from install tool" 发表评论。所以我进入 Typo3 的后端编辑用户并在 Options 和 TSconfig 字段下编辑我自己的用户。我在那里添加了一行 options.clearCache.system = 1
。现在我可以通过Typo3 后端的flash 符号清除系统内核。
之后我尝试更改 @param string
中的 @param String
。我删除了核心缓存,然后我得到了一个不同的错误。我发现这个新错误表明只有 arrays
或 objects
是操作方法中允许的参数(参见:http://wiki.typo3.org/Exception/CMS/1253175643)。
所以我删除了参数并按照解释错误的网站上的说明进行操作。所以我的新方法如下所示:
/**
* action show
*
* @return void
*/
public function showAction(){
if ($this->request->hasArgument('id')) {
$id= $this->request->getArgument('id');
}
// Do stuff with the id
}
现在可以了:)