Silverstripe에서 프런트 엔드 양식을 만들었습니다. 데이터를 기록한다는 의미에서 작동하며, 오류가있는 경우 다시 리디렉션하고 데이터를 저장하지 않습니다. 그러나 내가 직면하고있는 문제는 유효성 검사 메시지가 올바르게 표시되지 않는다는 것입니다. $Form
변수를 사용하여 프런트 엔드에 양식을 표시하면 유효성 검사가 제대로 작동합니다. 내가 원하는 것은 <% control Form %>
을 사용하여 양식의 레이아웃을 제어하는 것입니다. 이것은 양식이 어떻게 설계 되었기 때문입니다.Silverstripe : 사용자 지정 양식 서식 파일 - 유효성 검사 문제
(Template.ss)
<% control Form %>
<form class="wrap" $FormAttributes>
<% if $Message %>
<p id="{$FormName}_error" class="message $MessageType">$Message</p>
<% else %>
<p id="{$FormName}_error" class="message $MessageType" style="display: none"></p>
<% end_if %>
<fieldset>
<div class="member-details col lg-mobile-12 tablet-6 sm-desktop-6 md-desktop-6">
<% if ModTest == 'false' %>
<div class="field wrap">
<% control $Fields.dataFieldByName(ClientName) %>
<label class="title">$Title</label>$Field
<% end_control %>
</div>
<% end_if %>
<div class="field wrap">
<% control $Fields.dataFieldByName(FirstName) %>
<label class="title">$Title</label>$Field
<% end_control %>
</div>
<div class="field wrap">
<% control $Fields.dataFieldByName(Surname) %>
<label class="title">$Title</label>$Field
<% end_control %>
</div>
<% if $Fields.dataFieldByName(Address) %>
<div class="field address wrap">
<% control $Fields.dataFieldByName(Address) %>
<label class="title">$Title</label>
<% end_control %>
<div class="address-fields wrap">
$Fields.dataFieldByName(Address)
$Fields.dataFieldByName(Suburb)
$Fields.dataFieldByName(State)
$Fields.dataFieldByName(PostCode)
</div>
</div>
<% end_if %>
<% control $Fields.dataFieldByName(Phone) %>
<div class="field wrap">
<label class="title">$Title</label>$Field
</div>
<% end_control %>
<% control $Fields.dataFieldByName(Email) %>
<div id="$HolderID" class="field wrap <% if $extraClass %> $extraClass<% end_if %>">
<label class="title" for="$ID">$Title</label>
$Field
<% if $Message %><span class="message $MessageType">$Message</span><% end_if %>
</div>
<% end_control %>
</div>
<div class="password col lg-mobile-12 tablet-6 sm-desktop-6 md-desktop-6">
<div class="field confirmedpassword">
$Fields.dataFieldByName(Password)
</div>
</div>
$Fields.dataFieldByName(SecurityID)
</fieldset>
<div class="col lg-mobile-12 tablet-12 sm-desktop-12 md-desktop-12">
<% if $Actions %>
<div class="Actions">
<% loop $Actions %>
$Field
<% end_loop %>
</div>
<% end_if %>
</div>
</form>
<% end_control %>
감사합니다. 나는 그것을 들여다 볼 것이다. – Dallby