私はdatabase true/falseフィールド(field1)に関連するswitchinput Kartikウィジェットを使用しています。私がしたいのは、スイッチを変更するときに、このデータベースのフィールド値を更新できるようにすることです。ここYii2 - switchinputウィジェットがクリックされたときのデータベースフィールドの更新
は、ビューコードである:
<?php
echo $form->field($model, 'field1')->widget(SwitchInput::classname(), [
'type' => SwitchInput::CHECKBOX,
'name' => 'status_11',
'pluginOptions' => [
'size' => 'medium',
'onColor' => 'success',
'offColor' => 'danger',
'handleWidth'=>80,
'onText'=>'ACTIVE',
'offText'=>'INACTIVE'
]
]);
?>
、ここでは、データベースを更新しようとコントローラコードである:
.................
if (isset($_POST['status_11']))
{
if ($model->field1 == False)
{
$model->field1 = True;
}
else
{
$model->field1 = False;
}
}
if(!$model->save())
{
throw new Exception('Could not save to database. Trnasaction aborted.');
}
..................
スイッチがデータベースからFIELD1とショーの値を読み取ることができそれぞれオンまたはオフになります。しかし、変更(onclick)アクションはデータベースを更新しません...
私はPHPを使ってみるべきでしょうか、それともjs( 'pluginEvents'ウィジェットオプション)を使って実装するべきですか? ご意見をいただければ幸いです。前もって感謝します。
は答えてくれてありがとう! urlプロパティに[controller/action]参照を入れることは許されますか? – YorKal
はい。私はその解決策を更新しました – gmc