表单包含种族选择选项:
Ethnicity: <select id="household_members_0_ethnicity" name="household[members][0][ethnicity]" class="smallform">
<option value=""></option>
<option value="2">AfrAm</option>
<option value="3">Asian</option>
<option value="1" selected="selected">Cau</option>
<option value="6">HaPI</option>
<option value="4">Hisp</option>
<option value="5">NtvAm</option>
<option value="7">Oth</option>
<option value="8">Unk</option>
</select>
功能测试包含
$form["household[members][0][ethnicity]"]->select(6);
并返回
InvalidArgumentException:输入&#34;家庭[成员] [0] [种族]&#34; 不能采取&#34; 6&#34;作为一个值(可能的值:)。
请注意,可能的值为空。我尝试使用select("6")
和select("HaPI")
以及其他选项的组合进行测试,但都无济于事。
Fwiw,有一个类似的性别选择,$form["household[members][0][sex]"]->select('Male');
不会抛出异常。
我还尝试以数组形式输入$form()
值,但结果没有变化。
性别和种族领域之间的区别仅在于性别是一个明确的选择领域,种族是一个实体领域。
$form["household[members][0][ethnicity]"]->availableOptionValues();
返回一个空数组;
$form["household[members][0][sex]"]->availableOptionValues();
返回一组值和选项;
答案 0 :(得分:0)
InvalidArgumentException:输入&#34;家庭[成员] [0] [种族]&#34;不能采取&#34; 6&#34;作为一个值(可能的值:)。
错误消息应显示可能的值列表,而不是(可能的值:) 。您必须检查在test
环境中,此字段是否填充了ethnicity
实体的记录。根据您的评论,您使用SQLite数据库,因此您必须检查数据夹具是否为ethnicity
实体插入了一些数据。