我有2个模型预订和与众
我也有一个bookingattendee枢轴模型 - 因此我可以使用这些方法。
在我想添加与会者的预订的后端形式中 - 我正在使用部分与<?= $this->relationRender('attendees') ?>
建立关系,一切正常。
预订具有一些价格属性,我想每次添加或删除与会者时在页面上更新。
在创建关系之后发生的关系设备上是否有任何类型的方法,可以使我更新页面上的DIV?
根据文档,我可以使用以下4种方法来扩展RelationController
relationExtendViewWidget()
relationExtendManageWidget()
relationExtendPivotWidget()
relationExtendRefreshResults()
问题是我不知道如何使用这些来更新页面上的内容。
您必须在关系渲染中添加带有唯一ID的DIV。例如:
<div id="delegates-relation">
<?= $this->relationRender('delegates') ?>
</div>
然后,在您的控制器中,您必须添加relationExtendRefreshResults($field)
方法,然后从上面定义的ID中返回新的HTML。
/**
* Update fields after a relation has changed
*
* @param $field the relation field that has changed.
* @return array|null
*/
public function relationExtendRefreshResults($field):? array
{
if ($field !== 'yourField') { // here you can check which field was updated.
return null;
}
return [
'#delegates-relation'=> $this->relationRender('delegates'),
];
}