ui_componentを介してバックエンドフォームを作成するには、ボタンsaveおよびsaveAndContinue Button を表示するように構成ファイルで以下を定義します
<item name="buttons" xsi:type="array">
<item name="save" xsi:type="string">namespace\module\Block\Adminhtml\Edit\SaveButton</item>
<item name="save_and_continue" xsi:type="string">namespace\module\Block\Adminhtml\Edit\SaveAndContinueButton</item>
</item>
それぞれ、二つのファイルSaveButton.php
およびSaveAndContinueButton.php
作成したとの両方を実装していますButtonProviderInterface
私が知っているように、ボタンは主にgetButtonData
関数からレンダリングされます。見るSaveAndContinueButton.php
public function getButtonData()
{
$TodoItemId = $this->getTodoItemId();
$data = [];
if ($TodoItemId) {
$data = [
'label' => __('Save and Continue Edit'),
'class' => 'save',
'data_attribute' => [
'mage-init' => [
'button' => ['event' => 'saveAndContinueEdit'],
],
],
'sort_order' => 80,
];
}
return $data;
}
data_attribute
私は理解していないというところです。保存要求を処理するファイルをどのようにして知るのですか?
をチェックするとSaveButton.php
、
$data = [
'label' => __('Save TodoItem'),
'class' => 'save primary',
'data_attribute' => [
'mage-init' => ['button' => ['event' => 'save']],
'form-role' => 'save',
],
'sort_order' => 90,
];
私はui_component構成ファイルで知っていますが、
<item name="submit_url" xsi:type="url" path="path/to/save"/>
どちらのアクションも同じSave.php
ファイルを正常に実行し、それは理にかなっています。私を混乱させるのはdata_attribute
、どのようにSaveAndContinueButton
パラメーター " back
"を渡して、グリッドに移動するのではなく同じページにとどまることができるかです(通常、グリッドはフォームのエントリポイント、つまり編集ページです)。
をもう一度見ればdeleteButton
、それは別の風景です
$data = [
'label' => __('Delete'),
'class' => 'delete',
'on_click' => 'deleteConfirm(\'' . __(
'Are you sure you want to do this?'
) . '\', \'' . $this->getDeleteUrl() . '\')',
'sort_order' => 20,
];
onClick JavaScriptイベントを直接実行します。任意のアイデア/提案がいただければ幸いです。ありがとう
もう1つの質問:data_attribute
and の違いは何on_click
ですか?または他のものよりも有利ですか?