javalzbin
- javalzbin 回答了问题 高级版怎么实现前后台分离 ?
你把www.demo.com所指向的目录配置到advanced目录下,
那么访问后台:http://www.demo.com/backend/web/index.php
访问到前台:http://www.demo.com/frontend/web/index.php但是这样,url就比较长了,所以,你最好分配两个域名,比如后台域名为:backend.demo.com,然后这个域名目录直接指向到advanced/backend/web目录下,那么你访问的时候:http://backend.demo.com/index.php 就访问到后台
前台配置也类型,比如域名为frontend.demo.com,然后这个域名目录直接指向到advanced/frontend/web目录下,那么你访问的时候:http://frontend.demo.com/index.php 就访问到前台
生产环境中,这种方式用的也不少,一般把域名配置到公司首页,比如:www.demo.com,然后公司的管理后台用二级域名。
当然,还有其他的解决方案。看你习惯配置成哪种。如果是本地环境,可以通过配置hosts文件,也可以通过端口来区分。
如果是nginx,那么你配置多个server即可,例如:
server { listen 80; #当客户端使用www.bb.com域名过来时,就会走这个server的配置 server_name www.bb.com; ...... ...... } server { listen 80; #当客户端使用tt.bb.com域名过来时,就会走这个server的配置 server_name tt.bb.com; ...... ...... }
你需要把两个域名指向到这台机器上,然后,不同域名,他会访问到不同的server配置
其次,如果你只是域名不一样,配置完全一样,你可以只配置一个server,只要在server_name指定两个域名即可server { listen 80; #当客户端使用www.bb.com或者tt.bb.com;域名过来时,都走这个server的配置 server_name www.bb.com tt.bb.com; ...... ...... }
当然,apache或者其他服务器也是有类似的功能,只是配置不同而已。
- javalzbin 2016-03-26 已签到连续签到33天,获得了20个金钱
- javalzbin 2016-03-25 已签到连续签到32天,获得了20个金钱
- javalzbin 回答了问题 怎么向公共布局文件里面传递数据
在对应的action中
$view=Yii::$app->getView(); $view->params['menu']='这个布局可以用,对应视图也可以用';
在对应的视图和布局中,都可以这样获得:
echo $this->params['menu'];
- javalzbin 回答了问题 关于model数据保存
确实会保存不进去,一般不需要验证的,都加一个
['time', 'safe']
, 告诉yii这个属性是安全的,不需要验证 - javalzbin 2016-03-24 已签到连续签到31天,获得了20个金钱
- javalzbin 回答了问题 yii2+oracle 文章写入
这个是错误属于oracle的错误,实际上,你的长度确实超过了其能保存的长度
你的数据库字符集可能是UTF-8的,对于UTF-8或欧洲的某些字符集,oracle在存储时,对于一个字符需要2个或3个字节的存储空间,虽然表定义中为varchar2(4000),但是其实该字段的data_length为其2倍或3倍长。这种情况下oracle会把data_length长度超过4000的当做LONG型处理,所以报错。你可以这样测试这个问题:
你说,插入测试数据11122223333不长的不会报错,内容长了之后会报错,你插入,4000/2-1的长度的字符串,看看会不会报错,然后,看看4000/2的字符串长度会不会报错,如果报错,再看看4000/3-1长度的字符串会不会报错,再看看4000/3的长度会不会报错还有就是,明确指定绑定VARCHAR处理:参考php的文档:
http://php.net/manual/zh/function.oci-bind-by-name.php#92334//To avoid this error make sure you specify lengths when binding varchars e.g. <?php oci_bind_by_name($stmt,':string',$string, 256); ?> //And for numerics use the default length (-1) but tell oracle its an integer e.g. <?php oci_bind_by_name($stmt,':num',$num, -1, SQLT_INT); ?>
先尝试下吧