개체 저장소에 매핑되는 매개 변수가 포함 된 양식이 있습니다. 템플릿에는 체크 박스 목록과 함께이 매개 변수를 설정하는 폼이 있습니다. 컨트롤러와 템플릿의 동작 개요를 보여줍니다.allowAllProperties의 배경은 무엇입니까, 왜 여기에 필요합니까?
컨트롤러
/**
* action list
* @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Redacted\Productfinder\Domain\Model\Category> $categories
* @return void
*/
public function searchAction($categories=NULL) {
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump(func_get_args());
...
}
템플릿
<f:for each="{categories}" as="option">
<li class="category-{option.uid}" data-filter="{option.uid}">
<label for="checkbox-category-{option.uid}">
<f:form.checkbox name="categories" multiple="true" id="checkbox-category-{option.uid}" value="{option.uid}" checked="{x:condition.iterator.contains(haystack:'{filter.categories}', needle:'{option}', then:'checked')}" />
<span class="title">{option.title}
</label>
</li>
</f:for>
이 지금까지, 매력처럼 작동합니다. 이제 $ categories 매개 변수를 링크로 설정하려고 시도하지만 작동하지 않습니다. 나는 카테고리와 함께 f : for 루프를 가지고있다.
매개 변수를 단일 개체로 설정하면 무시됩니다. 오류 메시지가 없으면 Extbase는 값을 무시합니다.
<f:link.action action="list" arguments="{categories:category}">{category.title}</f:link.action>
나는 Extbase이 매개 변수가 매핑 할 수없는 것을 알려줍니다 그래서
<f:link.action action="list" arguments="{categories:{0:'{category}'}}">{category.title}</f:link.action>
같은 그 값을 배열에 매개 변수를 설정합니다.
#1297759968: Exception while property mapping at property path "": It is not allowed to map property "0"
나는 그렇게
$propertyMappingConfiguration = $this->arguments->getArgument($property)->getPropertyMappingConfiguration();
$propertyMappingConfiguration->allowAllProperties();
처럼 extbase 개체로 원시의 UID를 해결 한 다음 속성 mappging 수 있도록 Extbase에게, 그리고 수, 알아 내기 위해 관리했습니다 나는 좋겠 이것에 대한 배경 지식을 알고 싶습니다. 왜 GET 매개 변수를 허용 할 필요가 있습니까? POST에서만 작동합니다. 제가 잘못된 것을하고 있습니까, 아니면 설계 상입니까?
단일 개체를 매핑하는 매개 변수를 설정하는 것과 어떻게 다른지 이해할 수 없습니까? @param \ Redacted \ Productfinder \ Domain \ Model \ Category $ 카테고리를 링크의 인수로 쉽게 설정할 수 있습니다. ObjectStorage를 통해 여러 값을 가져 오는 이유는 무엇입니까? 두 경우 모두 PropertyMapper가 값을 객체에 매핑합니다. 그게 어떻게 보안을 개선합니까? – j4k3