clao
- clao 回答了问题 求一个富文本编辑插件
其实不推荐用ueditor编辑器BUG非常多,比如上传视频时候没法获取一帧作为视频显示图,所以上传视频都是显示空白,还有如果是直接上传视频好像是播放不了,然后点击源代码编辑的时候,如果没有点回可视化编辑,即使保存了,内容也是丢失的,还有挺多问题,你如果用了,你会发现坑挺多的,推荐summernote,只要引入它的js,然后在页面再写个id和一个js脚本就可以了:
id=summernote
,
`$(function () { $('#summernote').summernote({ lang: 'zh-CN', height: 250 }); });
`
- clao 提出了问题关于 Yii2 场景的应用的问题
你的思路有点问题。"ActiveRecord" 指的就是表格中的某一条记录,不能是多个表格中的某一条记录。既然你建立了两个表,就应该对应两个 AR 模型。
你描述的问题的根源在于你的表格设计得不好。试着只用一个 menu 表,里面包含原来的 menu 和 menu_frontend 的所有属性。在新的 Menu 模型内添加一个 'frontend' 场景,ActiveRecord 有个默认的
defult
场景,可作为你的 backend 场景:,rules()
内根据场景设定验证规则,例如:// in Menu.php const SCENARIO_FRONTEND = 'frontend'; public function rules() { return [ // 这些规则同时作用于 'default' (backend) 和 'frontend' [['type', 'name', 'url'], 'required'], // 这些规则仅作用于 'frontend' 场景 [['seo_title', 'seo_keyword'], 'required', 'on' => self::SCENARIO_FRONTEND], ]; }
通过上面的配置,后台代码可直接使用 menu 实例,前台代码将场景设置为 'frontend' 即可,例如:
// backend $menu = new Menu(); $menu->name = 'test'; $menu->save(); // backend $menu = new Menu(['scenario' => Menu::SCENARIO_FRONTEND]); $menu->name = 'test'; $menu->seo_title = 'seo-test'; $menu->save();
如果是把所有的字段都集合到一张表,这个我是会弄,关键是如果这个集合表中的后台菜单的一行,会有很多字段是空着(因为这些字段是属于前台菜单的),这样看起来怪怪的,有点强迫症的说。
- clao 评论了教程 yii2 一个表单内两个模型保存数据
能不能不修改控制器,而是修改模型,一个模型整合两个数据表的所有字段,然后通过场景取出需要存储的字段?
- clao 提出了问题如何一个模型关联多个数据表?