Yii gii生成Model类中关联表数据方法

在执行主表和关联表以及字段索引SQL后,
执行下面外键约束SQL
ALTER TABLE `主表名` ADD CONSTRAINT `索引名` FOREIGN KEY (`字段名`) REFERENCES `关联表名` (`关联表字段`)

之后再使用Gii创建Model类时,
便可以自动生成含有hasOne或hasMany的方法,用来读取关联表的数据。

Yii r=gii Forbidden (#403)

发生这个错误的原因是除本地ip外不被允许访问该页面,
这也是Yii框架对于安全的考虑。
所以解决的话,在配置文件中加入允许访问的ip即可。
config\main-local.php

$config[‘modules’][‘gii’] = [
‘class’ => ‘yii\gii\Module’,
‘allowedIPs’ => array(‘127.0.0.1′,’192.168.1.*‘, ‘::1’)
];

yii 配置域名直接访问basic模板web下报错

Failed opening required xxx/../vendor/autoload.php

错误原因是fastcgi.conf中设置的open_basedir=$document_root
指向的是网站根目录下的web内,
root /home/wwwroot/basic/web

但nginx需要解析网站根目录下的php文件来运行yii。
root /home/wwwroot/basic

在虚拟主机conf文件中重新给open_basedir赋值来解决此问题:
location ~ [^/]\.php(/|$){

include fastcgi.conf; #注意
fastcgi_param PHP_ADMIN_VALUE “open_basedir=/home/wwwroot/basic/:/tmp/:/proc/”;
}

注意:一定要在include fastcgi.conf之后加入上面一行,这样可以覆盖在fastcgi.conf中定义的open_basedir值。

vagrant 首次运行Yii报错

Failed to create directory “/xxx/basic/runtime/logs”: mkdir(): Permission denied
由于使用了主机与虚拟机文件夹共享,无法在虚拟机中修改文件夹用户权限。
需要修改vagrant配置文件Vagrantfile,
指定共享文件夹用户组和用户为www(nginx配置使用的用户组和用户)

config.vm.define “linode” do |ln|
  …
  config.vm.synced_folder
    “xxx”,
    “xxx”,
    owner:”www”, //虚拟机文件所有者(确保有该用户),默认为vagrant
    group:”www”, //虚拟机文件所有组(确保有该用户组),默认为vagrant
    :mount_options => [“dmode=755″,”fmode=644”]
end

IIS修改php.ini最有效的重启方法

在命令行下输入 iisreset

使用composer安装Yii报错

composer create-project yiisoft/yii2-app-basic basic
执行上述命令回报出下面错误。

[Composer\Repository\InvalidRepositoryException]
No valid bower.json was found in any branch or tag of https://github.com/bestiejs/punycode.js.git, could not load a package from it.

可以使用github账号内的授权码来解决此问题。
获取授权码:在github登录状态下访问,https://github.com/settings/tokens
点击“Generate new token”即可创建新的github授权码“XXXXXXXXXX”

编辑composer.json文件:在”config”: {“process-timeout”: 1800}, 这里}
加入github授权码配置
“github-oauth”: {“github.com”: “XXXXXXXXXX”}

最后命令行进入项目文件夹basic,
执行composer update
等更新完成即可Yii安装成功。