我一直在尝试在symfony中创建一个依赖的下拉列表,我在symfony文档中看到this帖子,然后我跟着它,唯一认为我在这里不理解:
$formModifier = function (FormInterface $form, Sport $sport = null) {
$positions = null === $sport ? array() : $sport->getAvailablePositions();
$form->add('position', EntityType::class, array(
'class' => 'AppBundle:Position',
'placeholder' => '',
'choices' => $positions,
));
};
应该在哪里定义getAvailablePositions?它会是什么样子?我真的迷路了,已经有一段时间了。我将衷心感谢您的帮助。提前谢谢。
顺便说一下。通过依赖下拉我的意思就像在symfony文档中你有两个下拉菜单,一个有体育,另一个有位置,然后你选择足球,之后第二个填充了守门员,防守,攻击等...... / p>
编辑:
这是我的javascript
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#sport").change(function(){
var data = {
option_id: $(this).val()
};
$.ajax({
type: 'POST',
url: '{{ path("positions") }}',
data: data,
success: function(data) {
var $position_select = $('#positions');
$position_select.html('<option>positions</option>');
for (var i=0, total = data.length; i < total; i++) {
$position_select.append('<option value="' + data[i].id + '">' + data[i].name + '</option>');
}
$position_select.html('');
$.each(data, function(k, v) {
$position_select.append('<option value="' + v + '">' + k + '</option>');
});
}
});
});
});
</script>
答案 0 :(得分:0)
可以使用事件订阅者完成。这里非常好的教程http://showmethecode.es/php/symfony/symfony2-4-dependent-forms/