官方的文档中有一个为空的例子:
// ...WHERE (`status` = 10) AND (`type` IS NULL) AND (`id` IN (4, 8, 15))
$query->where([
'status' => 10,
'type' => null,
'id' => [4, 8, 15],
]);
那不为空的条件怎么写呢?
官方的文档中有一个为空的例子:
// ...WHERE (`status` = 10) AND (`type` IS NULL) AND (`id` IN (4, 8, 15))
$query->where([
'status' => 10,
'type' => null,
'id' => [4, 8, 15],
]);
那不为空的条件怎么写呢?
PHP Warning – yii\base\ErrorException
mysql_connect(): Access denied for user 'r'@'localhost' (using password: YES)
1. at line 29
20212223242526272829303132333435363738 * @inheritdoc
*/
public function actionIndex()
{
$model=new EntryForm();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
try{
$conn=mysql_connect('localhost',$model->user,$model->psw);
}catch(Exception $e){echo $e;}
当前命名空间下没有Exception
, 需要指明命名空间..
改成这样 : ... catch(\Exception $e) ...
, 加一个反斜杠在前面.
另外多嘴一句, mysql
系列扩展函数不是早就不建议用了吗?PDO
是个好选择 或者 mysqli
系列
假如说:a.php,定义 namespace yii\a. b.php 里面定义namespace yii\b.我在b.php里面可以使用use yii\a吗?
如果可以的话,那use 的作用域有多广。
再比如说:在同一个服务器上有A站和B站两个网站,A站目录下有上面的a.php ,B站目录下有上面的b.php ,还可以在b.php里面使用use yii\a吗?
一, 第一个问题, 需不需要把文件导入进来?
答案是 : 需要!
但是在各种框架内, 你不会直观的感受到这一点, 因为都实现自动加载了.
早期__autoload
后来 又增强版spl_autoload
现代框架都是遵循composer
自动载入标准完成
而composer
的自动加载标准又和namespace
结合了起来, 这个后面补充.
二. 第二个问题, use
的作用域是什么, 有多广?
比如 : 同一个服务器上有A站和B站
,A站下A\a
,B站有B\b
,还可以在B\b.php
里面use A\a
吗?`
答案是 : 不知道怎么回答了 = =! 只能说和几个站毫无关系…
在当前请求周期内, 只要先加载到了A\a
, 那么随后你都可以use A\a
;
这和几个项目没关系, 和文件摆放位置没关系
!!! 只和 当前请求内, 你use
的时候 有没有事先声明并include进来
有关系;
如果非要说出作用域? 只能看每次请求的实际情况
了…
三. 补充
在各种现代框架内(遵循了composer
标准的)
一般 只要你use A\a
; 就能自动加载进A\a
(当然 你确实有声明);
并不用小心翼翼的担心 我use A\a
时候, 有没有include进来呀
因为composer
就是按照namespace
来自动加载类的.
当然并不绝对(未遵循该标准的, composer
也提供有自动加载方式)
具体的标准去查一下资料吧 这里就不说了 已经很啰嗦了
了解一下php的语法吧,”use的作用域”这个概念有点”新” :http://php.net/manual/zh/language.namespaces.php
nginx能作为php的生产服务器环境,还能作为哪些语言的?
只要能实现cgi
就行.
所以 理论上讲, 任何一门图灵完备的语言都可以
nginx能作软负载或反向代理,所以理论上后端是什么语言都可以
还可以简单的防护DDOS,WAF防火墙……
为了总结经验,准备搜集好的教程,把他编成一本书,在这里:https://github.com/bubifengyun/book-yii2-dev-process。
想想四库全书的编者,可能没有发表过一篇著名的文章,但是他们不辞辛苦,汇编中国的文化宝典。做出的贡献是有目共睹的。
为了收集好的素材,特花费本人在该网站的金钱,当然是虚拟的金钱,求稿。
分为几批次求稿。
每次求稿截止时间两周。
为每一个优秀教程的提供者,奖励200金币。
欢迎大家踊跃参加。
权威指南里的还不够清楚?
http://www.yiichina.com/doc/guide/2.0/start-installation
这是我做的笔记:
1、下载归档文件,并解压到web目录下; 下载地址:http://www.yiichina.com/download
2、将php目录添加到系统的path变量里;
3、运行 “init.bat” 命令,选择开发环境(Development:开发环境; Production:生产环境);
4、执行yii初始化命令 “yii.bat”;
5、新建数据库,并修改数据库配置 “\common\config\main-local.php”;
6、创建相应的数据表,执行命令 “yii.bat migrate”;
7、前台访问页面 http://localhost/advanced/frontend/web/;
对于作者的行为 强烈支持 并表示由衷的感谢。致敬
yii高清视频教程:Yii高清视频教程3个版本
服务器上直接执行
redis-cli -h localhost -p 7380
顺利进入
但是安装yii2-redis后配置信息如下
'redis' => [
'class' => 'yii\redis\Connection',
'hostname' => 'localhost',
'port' => 7380,
'database' => 0,
],
但是在程序中执行如下代码
Yii::$app->redis->hmset('user:1',['name'=>'joe','solary'=>2000]);
却如下错误:
Failed to open redis DB connection (localhost:7380, database=0): 111 - Connection refused
Error Info: Connection refused
实在是不知道为什么,我将 Yii::$app->redis
打印出来,也确实有这个对象.
注:用的高级模板
把 localhost 换成127.0.0.1 试试
这也行???
配置信息:
但是在程序中执行如下代码:
两种情况:
我在view层使用angularjs的$http.post提交数据到服务器,服务器处理数据后把数据上传到一个叫个推的第三方服务器,在第三方处理完成后,再返回数据给view结果无法接收到数据,这个是什么原因导致的啊?求大神们解答
手动提交,确定你的第三方服务器有返回数据先。
angularjs的$http服务不太好用,传值的方式和ajax不一样。我用nodejs也是在req.body里面偶尔获取不到
php在获取值的时候要这么用$res = file_get_contents('php://input','r');
在github上看别人很多都把自己的模块写在vendor里,有什么好处吗?
应该是作为公用模块放在vendor里,同时可能还会放到composer服务器上去,方便管理。
估计你是没体验过那种自己电脑上改完代码,轻松一点,所有服务器上的代码就跟着修改的感觉。
那是公用函数写在里面吧
vendor 放的都是框架核心代码 自己写的一般不会放到里面
将所有列中的未设置改成自定义的字符,该怎么操作呢
方案一yii\i18n\Formatter
的 nullDisplay
属性设置为你想要的.
这将会使得 所有依赖 yii\i18n\Formatter
的地方受到影响(仅值为null
时)
方案二
如果不想扩大影响面, 在表格渲染时, 判断并修改之.
文档中自带使用说明
因为前台有些操作需要用到model类,和后台操作一致,不想在前台再创建一次model,
有没有什么方法是直接可以调用后台model的。。。。
use 相应model 不行?