谁一开始就是大神?

PHP 第108页

PHP

Yii创建form表单?

Jacklemon阅读(60)

求来一个通俗易懂的讲解,教程看不懂啊

gii gii gii gii gii gii gii gii gii gii

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

acgpony阅读(60)

用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阅读(64)

在网上搜到很多关于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阅读(62)

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

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

关于内容格式化输出的问题[2.0]

Tinaslim阅读(73)

大家好,请问,我有个字段“start_at”是unixtime格式保存的时间。
我想在输出是现实为日期格式 Y-m-d
在view界面我知道用 start_at:datetime 可以格式化为日期
但是在ActiveForm中我使用了DatePicker控件时,应该怎么让他也格式化成日期形式呢?我的代码如下。
谢谢大家。

<?= $form->field($model, 'start_at')->widget(
    DatePicker::className(), [
    'inline' => FALSE,
    'language' => 'zh-CN',
    'clientOptions' => [
        'autoclose' => true,
        'format' => 'yyyy-mm-dd',
    ]
]); ?>

‘dateFormat’ => ‘php:Y-m-d’,
需要添加
"yiisoft/yii2-jui": "*"
使用如下:
api参考:
http://www.yiiframework.com/doc-2.0/yii-jui-datepicker.html

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

Marksea阅读(64)

用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阅读(64)

我想在一个页面中使用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阅读(62)

由于像在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() 方法就可以了

登录

找回密码

注册