码农日记

薄洪涛的个人博客

YII2独立开发遇到的坑

    之前开发的时候,遇到图片上传什么的都是直接用前辈们配好的插件等等,换了家公司以后,要自己独立开发项目,顿时遇到了问题,开始是项目的配置,然后在添加的时候遇到了图片上传的问题,开始我以为post提交表单会直接在控制器中获取提交的文件,然后我一直找为什么post提交的图片会为空,经过一段时间的百度和前辈的指导,终于找到了代码和原因,原来提交文件需要另一个方法把东西给拿出来,现在给大家贴出代码:

 $file = UploadedFile::getInstance($model, 'img');//获取提交文件的信息
                $dir = "../../frontend/web/image/news/" . date("Ymd");//文件的保存路径
                if (!is_dir($dir)) {//判断是否有这个目录
                    mkdir($dir);//创建目录
                }
                //文件名
                $fileName = date("HiiHsHis") . $file->baseName . "." . $file->extension;
                //var_dump($fileName);
                //保存路径
                $dir = $dir . "/" . $fileName;//文件的保存路径
                //var_dump($dir);
                //保存文件
                $file->saveAs($dir);

代码都在这里,注释的很清楚,这是我用YII写的。


然后写着写着又遇到了问题,就是编辑器,曾今的我也是直接复制粘贴就行了,从来没有自己导入过插件,经过一番百度,使用了composer下载了百度编辑器,使用的方法也很简单:

<?= $form->field($model, 'content', ['inputOptions' => ['class' => 'input_style input_style2']])->widget('kucha\ueditor\UEditor',[
              'id'=>'content','name'=>'content',
              'clientOptions' => [
                  //编辑区域大小
                  'initialFrameHeight' => '400',
                   'initialFrameWidth'=>'1600',
                  //设置语言
                  'lang' => 'zh-cn', //中文为 zh-cn
              ]

          ]) ?>

设置这些百度找到,在这之后又有了需求,修改的时候要把整条信息显示出来,然后我的方式是用Jquery的post方法传个ID到控制然后返回数据,再渲染到前端的页面,结果问题来了百度编辑器怎么写参数这数据就是出不来,下面是我的普通输入框的写法:

<?= $form->field($model, 'abstract', ['inputOptions' => ['class' => 'input_style input_style2']])->textInput()->label(false); ?>

红色部分就是我输出值的部分,结果百度了很久找不到输出的方法,后来在群里老哥的帮助下,我解决了这个麻烦:

$model->content=$strategy['content'];

对,就是这么简单,YII在控制器可以直接指定model的值,但我就是不知道,还是感谢群里的几位老哥热心帮助啊,不然真的难顶

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

版权所有 | 转载请标明出处