Shopware를 배우는 중이며 해결 방법을 알 수없는 무언가가 있습니다.프론트 엔드 계정 프로필 양식의 고객 속성 업데이트
고객에게 속성을 추가하는 테스트 플러그인을 작성하고 있습니다. 나는 해당 필드를 등록 양식에 추가했고, 문서의 어딘가에서 읽은 것처럼 그 값을 자동으로 db에 저장합니다.
이제 암호 속성 필드 다음의 계정 프로필 페이지에서 속성을 편집 할 수있게하려고했습니다. 나는 그곳에 입력을 넣을 수 있었고 심지어 db의 값을 보여 주었다. 그러나 값을 변경하고 저장하면 그 값은 업데이트되지 않습니다. 필드 이름을 올바르게 가져 오는 문제인지 또는 다른 것을 무시해야하는지 여부는 알 수 없습니다. 아니면 그냥 불가능한가요? 이를 달성하는 방법에 대한 도움은 크게 감사하겠습니다.
아래관련 코드 :
플러그인/personal_fieldset.tpl
{extends file="parent:frontend/register/personal_fieldset.tpl"}
{block name='frontend_register_personal_fieldset_password_description'}
{$smarty.block.parent}
<div class="register--test-field">
<input autocomplete="section-personal test-field"
name="register[personal][attribute][testField]"
type="text"
placeholder="Test Field"
id="testfield"
value="{$form_data.attribute.testField|escape}"
class="register--field{if $errorFlags.testField} has--error{/if}"
/>
</div>
{/block}
계정 등록
public function install(InstallContext $context)
{
$service = $this->container->get('shopware_attribute.crud_service');
$service->update('s_user_attributes', 'test_field', 'string');
$metaDataCache = Shopware()->Models()->getConfiguration()->getMetadataCacheImpl();
$metaDataCache->deleteAll();
Shopware()->Models()->generateAttributeModels(['s_user_attributes']);
return true;
}
부트 스트랩/profile.tpl
{extends file="parent:frontend/account/profile.tpl"}
{block name='frontend_account_profile_profile_required_info'}
<div class="profile--test-field">
<input autocomplete="section-personal test-field"
name="profile[attribute][testfield]"
type="text"
placeholder="Test Field"
id="testfield"
value="{$sUserData.additional.user.test_field|escape}"
class="profile--field{if $errorFlags.testField} has--error{/if}"
/>
</div>
{$smarty.block.parent}
{/block}