谁一开始就是大神?

PHP 第17页

PHP

关于layouts/main.php里的<?php$this->endPage()?>[2.0]

ecyhappy阅读(56)

main.php里面是这样写的

<?php
use yii\helpers\Html;
use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;
use yii\widgets\Breadcrumbs;
use frontend\assets\AppAsset;
use common\widgets\Alert;
AppAsset::register($this);
?>
<?php $this->beginPage() ?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8"> 
</head>
<body>
  <?php $this->beginBody() ?>
  <?=$content?>
  <?php $this->endBody() ?>
</body>
</html>
<?php $this->endPage() ?>

然后页面正常 但尾部有一个微信截图_20170705143202.png

我是把main.php里的<?php $this->endPage() ?>给去掉就好了 或者去掉<?php $this->endBody() ?>

想问下 为啥会有这个404 应该怎么去掉?

查看源码,看你在底部加载了什么东东。
这是你加载的东西报的404
那个<?php $this->endPage() ?>只是标注底部数据加载的位置,相当于一个占位符。

YII1.1.17服务器配置问题[1.1]

Bravequeen阅读(45)

公司新起了一个美洲服务器,代码上传后台显示:

Error 500
Non-static method Content::getStatusOptions() should not be called statically

把getStatusOptions()设置成static的页面倒是显示出来了,可功能完全不能使用。
这个问题在其它服务器上都没有遇到过,新服务器使用的是php 5.6版本,我看Yii1.1.17版本介绍说明兼容到php 7版本啊,这会是哪里的问题呢?

语法问题。
yii是兼容php 7 ,可你写的代码不兼容php 7.
你开发环境应该是php5.4以下的版本吧,先把你本地升级成php5.6,把不兼容的部分处理完了再上传。

yii2默认路由url美化跳转失败[2.0]

Bravelove阅读(60)

全身家当求助中。。。。。。。。。。

如下问题:
在web配置文件中 一开始是没有使用美化url的情况下设置了默认路由 “defaultRoute”=>”index/home”
访问项目的时候输入 127.0.0.1/yykj/web 正常访问到设置的默认路由

后来为了美化url隐藏index.php
使用了如下美化配置(在web目录下添加了.htaccess文件)

 'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'enableStrictParsing' => true,
            'rules' => [
                '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                "<controller:\w+>/<action:\w+>"=>"<controller>/<action>",
            ],
        ],

正当高兴美化了url使用127.0.0.1/yykj/web/index/home的时候正常访问
可是当输入 127.0.0.1/yykj/web的时候无法跳转到默认页面 而是直接跳转到/site/error中去了
求解决

你在 rules 那加一行'/' => '/index/home',
默认页面是什么?
使用美化最好把 站点目录定位到web目录下。也就是你的/yykj/web

2.0高级在php7.0报错如图[2.0]

JasonEagle阅读(59)

Warning: require(): open_basedir restriction in effect. File(/www/ad/web/yii/vendor/autoload.php) is not within the allowed path(s): (/www/ad/web/yii/frontend/web/:/tmp/:/proc/) in /www/ad/web/yii/frontend/web/index.php on line 6

Warning: require(/www/ad/web/yii/vendor/autoload.php): failed to open stream: Operation not permitted in /www/ad/web/yii/frontend/web/index.php on line 6

Fatal error: require(): Failed opening required '/www/ad/web/yii/frontend/web/../../vendor/autoload.php' (include_path='.:/usr/local/php/lib/php') in /www/ad/web/yii/frontend/web/index.php on line 6

这是报错信息, 我新下载的框架, 没有改动任何东西

问题是出现在了PHP.INI上面了
原因是php.ini里设置了
opendir=/www/ad/web/yii/frontend/web/:/tmp/:/proc/
解答:
其实open_basedir 这个是用来限制php的目录访问权限什么的,如果不在允许的范围内,php就不能访问。
这个 open_basedir 在 php.ini 里可以设定,也可以在 apache的httpd.conf 里面设定
看起来像是权限的问题,查看下你项目的所有者和所有组,再把php-fpm的用户(通常是www-data)加入到这个组
vendor目录下的也看下,如果你的 composer 安装用了 sudo 权限
我也遇到相同问题,求解!!
今天刚碰到这个问题,刚解决了..楼上说的很对,就是open_basedir()配置下就可以了.比如楼主的目录是/www/ad/web/yii/
就在/usr/local/nginx/conf.fastcgi.conf里面修改下配置
重启下就好啦~
刚学Liunx,这个破问题害我洗了2次.
具体我总结了下你可以参考..
http://blog.csdn.net/joeson7456/article/details/77434850
请问怎么解决的啊?

Linux执行时任务,报错:/usr/bin/env:php:?[2.0]

richslim阅读(55)

在Linux下执行定时任务,手动执行,没有问题
用定时任务执行,报错:/usr/bin/env: php: No such file or directory,这是什么原因?

确认下php安装文件在不在/usr/bin/env目录下

URL删除报错,Unabletoverifyyourdatasubmission[2.0]

CindyLion阅读(52)

GridView控件中[‘class’ => ‘yii\grid\ActionColumn’],自动生成的删除功能,点击删除后提示 Bad Request

(#400) Unable to verify your data submission.这个删除本身是URL传值啊,难道也要用csrf验证?
解决方法一:我把ActionColumn.php基类中initDefaultButtons()的’data-method’ => ‘post’注释了,把对应的

控制器中behaviors()函数中的’delete’ => [‘POST’]注释了,就可以了,奇怪的是其它项目没有这么做,删除仍然正


解决方法一:对应的控制器中设置 public $enableCsrfValidation = false;可能会影响其它功能

上面两种解决方法自己感觉都不好,担心会影响其它功能,所以想问问有没有其它解决方法,本身是URL传值,怎么也会

用到CSRF验证呢。

你可以在controller的beforeAction中,判断到具体的action的id,然后关闭验证
删除的post数据中没有csrf?

请教:控制器->services->模型->数据库[2.0]

Tinaapple阅读(54)

谁能给点思路,就是控制器==》services==》模型==》数据库这种思想下,怎么去把握呀,我感觉整个人都是懵都,不知道该怎么下手了。请大神支招

一个控制器对应一个service对应一个model;service均为逻辑处理;model只负责表结构;控制器只负责渲染
使用webserver,在controller里面访问webservice即可
看不懂!..
控制器无语句查询,services你们是服务阿 还是接口请求阿 还是说数据库逻辑层阿 如果是的话 就是模型就只是数据库链接 和常规查询相关,

Yii2事务处理,创建新表后和插入新表数据后就不会回滚[2.0]

CGelephant阅读(59)

目前遇到的问题是
加了下面的功能后,就不能回滚,不加之前异常都是可以捕获到,然后回滚的
php版本 5.6.27
mysql版本5.5.53
新加的功能代码如下:

如果我屏蔽下边的语句,发生异常就能回滚

        //上边是执行事务
        $number =$a->id;//上面获取到自增逐渐
        $arr=array('www.1.com','www.2.com','www.3.com');
        Yii::$app->db->createCommand("
            CREATE TABLE `b_{$number}` (
            `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键',
            `name` varchar(255) DEFAULT NULL COMMENT '名称',
            `domain` varchar(255) DEFAULT '' COMMENT '域名',
            `is_delete` int(10) DEFAULT '0',
            PRIMARY KEY (`id`),
            UNIQUE KEY `domain` (`domain`)
            ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='b表_{$number}';
            ")->execute();

        foreach ($arr as $k=>$v){
            $data[] = '("' . 'null' . '", "' . '' . '", "' . $v . '", "' .'0'. '")';
        }
        $query = "INSERT INTO b_{$a->id} (id,name,domain,is_delete)VALUES" .
            implode(',', $data);
        $result=$connection->createCommand($query)->execute();
        if(!$result){
            throw new \Exception('添加失败');
        } 
        //下边捕获异常,try catch 

加了的话,不出错误,能正常提交;
如果模拟插入错误,直接抛异常的,而且不能捕获到

求高手大大解答指教。

在catch里打印错误啊 echo array_values($model->getFirstErrors())[0];exit;
代码贴全点.
代码好乱,事务处理看下这个
Yii2 事务处理
事务开始和回滚呢?

登录

找回密码

注册