求来一个通俗易懂的讲解,教程看不懂啊
gii gii gii gii gii gii gii gii gii gii
求来一个通俗易懂的讲解,教程看不懂啊
gii gii gii gii gii gii gii gii gii gii
怎么不显示gridview中的 # 这一列?
如题
是否有[‘class’ => ‘yii\grid\SerialColumn’], 去掉试试
用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服务器的连接一般是‘短连接’。
在网上搜到很多关于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',
];
必须顶,女中豪杰啊,美女程序员。
好棒,顶一个,大美女写的啊
有没有谁在yii下用过推送?
和YII无关,也许你需要百度 极光推送、个推、友盟这些第三方服务商。
如果你希望向APPLE发送APNS推送,那么只需要遵循规范,然后CURL即可。
长连接?SOCKET?可以倒是可以,但是你确定?
求解
命令行工具 controller
有用,凑十个字啊回复
大家好,请问,我有个字段“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?
我括号里面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了
我想在一个页面中使用ajax,但是jquery.js是在布局文件main.php的末尾引用的,导致ajax失效,其他jquery代码也是失效的。想到解决的办法有二。
第一:将jquery代码写到布局里面,显然不可取,因为这样会导致文件会有多于的jquery代码。
第二:将jquery.js由布局文件的末尾移到开头,但是问题来了,在布局文件main.php中我并没有看到引入jquery.js的源码,不知道在哪里
引入的,所以就没法移动。 求解?
解决办法,在配置文件web.php中的components里:
傻孩子,其实也可以定制一下jquery的,框架自带的jquery没有压缩的,比较大,可以把它在源码处改写,换成自己的jquery,这样能节省几十kb哦
由于像在A控制器中的__construct()
做一些简单的验证,
然后B控制器才是访问的控制器调用parent::__construct()
去做通用的验证,
但是会报错,报错如下
PHP Fatal Error – yii\base\ErrorException
Call to a member function getUniqueId() on a non-object
yii
框架需要自己创建 Controller
的实例,你任何时候都不需要覆盖人家的 构造函数
,如果你需要覆盖的话,也需要和它的 方法签名
一样,并且调用 parent::__construct
,99.999%
的情况下,你不需要这么做
你的问题是,在 controler
初始化的时候,做些验证,用 init()
方法就可以了