我在Yii2项目中使用moonlandsoft/yii2-tinymce。
我根据他们的文档使用它。
use moonland\tinymce\TinyMCE;
echo TinyMCE::widget(['name' => 'text-content']);
$form->field($model, 'description')->widget(TinyMCE::className());
我不知道,他们是如何首先渲染窗口小部件然后将模型加载到其中的。
没有采取价值,也没有在提交时验证。这是我桌子的必填字段。
控制器:
public function actionUpdate($id) {
$model = $this->findModel($id);
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->productId]);
} else {
return $this->render('update', [
'model' => $model,
]);
}
}
型号:
public function rules()
{
return [
[['prodname','description'], 'required'],
];
}
查看:
<div class="row" style="margin-top: 10px;">
<div class="col-md-12 col-sm-8 col-xs-12">
<?php
echo TinyMCE::widget(['name' => 'text-content']);
$form->field($model, 'description')->widget(TinyMCE::className());
?>
</div>
</div>
答案 0 :(得分:0)
在您的视图中,您显示的是不在您的模型中的字段(name
),以及您未显示该字段的字段(description
)。假设只有description
将使用TinyMCE小部件,您的视图应如下所示:
<div class="row" style="margin-top: 10px;">
<div class="col-md-12 col-sm-8 col-xs-12">
<?= $form->field($model, 'description')->widget(TinyMCE::className()); ?>
</div>
</div>
答案 1 :(得分:0)
我意识到我的回复为时已晚,但是仍然张贴我的回复,以防像我这样的任何人仍然遇到问题。
对我有用的解决方案是使用TinyMce提供的triggerSave()
方法(官方链接:https://www.tiny.cloud/docs/api/tinymce/tinymce.editormanager/#triggersave)。默认情况下,tinymce编辑器似乎不会将内容从编辑器保存到原始textarea字段中。因此,按如下所示初始化编辑器时,请绑定事件以将内容保存到textarea中:
setup: function (editor) {
editor.on('change', function () {
tinymce.triggerSave();
});
}
由于kishor10d使用的是“ moonlandsoft / yii2-tinymce”,因此必须自定义小部件代码,以便在初始化编辑器时添加以上内容。
我所做的是改为通过composer安装tinymce,然后分别设置TinyMceAsset.php文件。我创建了一个完整的自定义初始化js调用,以控制编辑器和其他功能中的选项。示例代码如下:
tinymce.init({
selector: "#" + eleId,
plugins: plugins,
paste_as_text: true,
forced_root_block: 'p',
menubar: 'file edit view insert format tools table help',
toolbar: 'undo redo | bold italic underline strikethrough | \n\
fontsizeselect formatselect | \n\
alignleft aligncenter alignright alignjustify | \n\
outdent indent | numlist bullist | \n\
forecolor backcolor removeformat | pagebreak | \n\
charmap | fullscreen preview save print | \n\
insertfile image media template link anchor codesample | \n\
ltr rtl | table',
toolbar_sticky: true,
height: 400,
paste_retain_style_properties: "color",
setup: function (editor) {
editor.on('change', function () {
tinymce.triggerSave();
});
}
});