谁一开始就是大神?

PHP 第108页

PHP

render渲染视图实质上就是将views的代码调用到controller里面吗[1.1]

acgpony阅读(113)

用widget生成表单,我看到视频里面生成的表单是action到view的,但是为什么在控制器能够接收到数据呢?render渲染视图实质上就是将views的代码调用到controller里面吗?

表单的显示和提交是两个过程:
1) 显示表单,get方法调用controller的action,render函数调用view返回要渲染数据,传给layout返回给浏览器。
2) 表单提交,post方法调用controller的action,通常不调用render,而是判断是有POST数据执行save分支然后redirect(重定向触发另一个get请求)。
或者简单说:有表单的controller/action被请求时,最多会执行两次。这两次都是独立进行的,因为浏览器和web服务器的连接一般是‘短连接’。

YII2.0使用PDO连接Oracle库查询结果中文显示乱码问题[2.0]

Fionahappy阅读(115)

在网上搜到很多关于PDO连接Oracle的示例,但是实际使用中还是乱码了。数据库oracle的编码是utf8的,显示到页面却是gbk编码。
貌似连接串里的charset=utf-8未生效。
需要改YII2.0的代码:\vendor\yiisoft\yii2\db\Connection.php,在in_array里面加上oci

/**
     * Initializes the DB connection.
     * This method is invoked right after the DB connection is established.
     * The default implementation turns on `PDO::ATTR_EMULATE_PREPARES`
     * if [[emulatePrepare]] is true, and sets the database [[charset]] if it is not empty.
     * It then triggers an [[EVENT_AFTER_OPEN]] event.
     */
    protected function initConnection()
    {
        $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        if ($this->emulatePrepare !== null && constant('PDO::ATTR_EMULATE_PREPARES')) {
            $this->pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, $this->emulatePrepare);
        }
        if ($this->charset !== null && in_array($this->getDriverName(), ['pgsql', 'mysql', 'mysqli', 'cubrid', 'oci'])) {
            $this->pdo->exec('SET NAMES ' . $this->pdo->quote($this->charset));
        }
        $this->trigger(self::EVENT_AFTER_OPEN);
    }


在配置数据库的地方做如下配置:

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'oci:dbname=//db.cms.china.com:7137/deptdb;charset=utf8',
    'username' => 'editor',
    'password' => 'editor123',
];

必须顶,女中豪杰啊,美女程序员。
好棒,顶一个,大美女写的啊

怎么在服务端向mobile的客户端推送消息?[2.0]

lionlemon阅读(123)

有没有谁在yii下用过推送?

和YII无关,也许你需要百度 极光推送、个推、友盟这些第三方服务商。
如果你希望向APPLE发送APNS推送,那么只需要遵循规范,然后CURL即可。
长连接?SOCKET?可以倒是可以,但是你确定?

在DetailView中如何自义为自己想要的样式?[2.0]

Ellieapple阅读(126)

用Gii直接生成的视图文件里:

<?= DetailView::widget([
    'model' => $model,
    'attributes' => [
        'uid',
        ['label'=>'gender','value'=>$model->getGenderText()],
    ],
]) ?>

这里面输出的HTML怎么自定义或修改样式?

研究了一下Yii2.0源码,找到了答案,给大家分享如下:
DetailView可以自由定义样式
输出后的HTML为:
其它具体参数,可以参考【yii\widgets\DetailView
不错,感谢分享~~~
内容呈网格状···咋弄··

用Yii的企业多吗?感觉很少啊。想找一书籍,在大淘宝上居然搜不到。[2.0]

Wendyseagull阅读(129)

毕业论文打算用YII做个网站,看到有人介绍这边书《应用Yii1.1和PHP5进行敏捷Web开发》发现淘宝居然没有,甚至其他书籍也没。。

yii1的书,http://www.yiibook.com/ 有下载。
yii2的书只有英文的。可以到http://it-ebooks.info/search/?q=yii&type=title 这里下载。
Baidu Tencent都有使用的.
Sina, jumei, xiaomi 也都有使用的。

ActiveQuery怎么生成(**and**)OR(**AND**)的SQL?[2.0]

Marksea阅读(120)

用activequery怎么生存(and) OR ( AND )的sql?
我括号里面and两边的条件含有运算符。
问题如果都是=我会,就是不知道怎么加其他运算符。
比如:
['or', ['type' => 11, test = 1], ['id' => 10, uid=5]
生成(type=11 and test=1) or (id=10 and uid=5)
我要生成(type=11 and test>=9) or (id=10 and uid=5);
怎么加运算符?

用andWhere()后缀在where()后面就ok了

Yii中jQuery的引入问题[2.0]

JackLion阅读(128)

我想在一个页面中使用ajax,但是jquery.js是在布局文件main.php的末尾引用的,导致ajax失效,其他jquery代码也是失效的。想到解决的办法有二。

第一:将jquery代码写到布局里面,显然不可取,因为这样会导致文件会有多于的jquery代码。
第二:将jquery.js由布局文件的末尾移到开头,但是问题来了,在布局文件main.php中我并没有看到引入jquery.js的源码,不知道在哪里

引入的,所以就没法移动。 求解?

解决办法,在配置文件web.php中的components里:
傻孩子,其实也可以定制一下jquery的,框架自带的jquery没有压缩的,比较大,可以把它在源码处改写,换成自己的jquery,这样能节省几十kb哦

yii2.0如何用B控制器继承A,A控制器继承yii\web\Controller[2.0]

likelyStone阅读(124)

由于像在A控制器中的__construct()做一些简单的验证,
然后B控制器才是访问的控制器调用parent::__construct()去做通用的验证,
但是会报错,报错如下

PHP Fatal Error – yii\base\ErrorException
Call to a member function getUniqueId() on a non-object

yii 框架需要自己创建 Controller 的实例,你任何时候都不需要覆盖人家的 构造函数,如果你需要覆盖的话,也需要和它的 方法签名 一样,并且调用 parent::__construct99.999% 的情况下,你不需要这么做
你的问题是,在 controler 初始化的时候,做些验证,用 init() 方法就可以了

RESTful服务快速入门中的疑问[2.0]

foreverLion阅读(124)

按照 2.0 中文的教程,一直显示 404 错误。那个教程的例子有谁操作成功的,我学习 Yii 就为了搭建 API 接口方便。

看官方的英文文档弄好了,不用大家回答了

登录

找回密码

注册