谁一开始就是大神?

PHP 第67页

PHP

debug出来的信息为什么有的重复,有的却不重复呢??[2.0]

ecycrab阅读(88)

debug出来的信息为什么有的重复,有的却不重复呢?? 我并没有将一个方法执行多次。

1

15:18:27.722	0.5 ms	SELECT	SELECT * FROM `config_items` WHERE (`name`='site_logo') AND (`categoryid`=1)
/var/www/html/1.php (83)
/var/www/html/index.php (78)
/var/www/html/RoomController.php (114)
[+] Explain

2

15:18:27.724	0.4 ms	SELECT	SELECT * FROM `config_items` WHERE (`name`='site_logo') AND (`categoryid`=1)
/var/www/html/1.php (83)
/var/www/html/index.php (78)
/var/www/html/RoomController.php (114)

345.png

系统里有好多关联操作,比如你进行一个操作时需要验证你是否已登录,是否是管理员等等.

这个删除语句要怎么改呀兄弟们快来![2.0]

HaHCherry阅读(96)

Info::deleteAll('id>:id',array(':id'=>2));我要删除ID大于2的数据库数据 结果系统提示我未定义的变量!咋回事呀 Info是模型层的名字

Info::deleteAll(['>','id',2])
这样

$app=newyii\web\Application($config);[2.0]

Aibytom阅读(103)

1.$app=new yii\web\Application($config);
2.

class Yii extends \yii\BaseYii
{
}

以上的

yii\web\Application
yii\BaseYii

是什么意思呢?

命名空间:http://php.net/manual/zh/language.namespaces.rationale.php
有何作用:避免命名重复;顾名思义,我定义多个区域(命名空间),彼此之间的区域互不干扰,但同区域下却不能有相同的命名;
命名空间, 他类似于指向某个目录,该目录下不能有同名的文件(相同的命名空间下不能有同名的类)一开始是为了解决类名重复问题。
后来用做类自动加载

对数据库数据进行更改操作的新手问题[2.0]

Leolovely阅读(94)

$demo=Info::find()->where(['id'=>2])->all();
        $demo=array('name'=>$model->name,'E_mail'=>$model->email,'phone'=>$model->phone);
        $info->save();

应该怎么改了 研究好久啦啊 运行不报错 数据库没有被更改 只是添加了一条空数据
已经解决 谢谢大家 真心感谢

若已经存在$id 记录,则更新,若不存在,则写入新数据记录。

关于model数据保存[2.0]

HaHStone阅读(105)

比如说我有一个文章模型 title content auther 这三个字段是必填的
然后我还有一些其他的非必填字段 time isPublish 等等
我在\models\Post.php这个文件里面添加了规则

public function rules()
    {
        return [
            [['title', 'content', 'isPublish'], 'required']
        ];
    }

要求这三个字段必填
但是当我给其他属性赋值的时候(比如time字段)再 model->save()
只会保存验证的 三个字段 其余的字段全部都保存不进去 为什么

确实会保存不进去,一般不需要验证的,都加一个['time', 'safe'], 告诉yii这个属性是安全的,不需要验证
不批量赋值可以保存吧。。。

关于重写路由规则总是出现404错误的问题[2.0]

Kindpony阅读(98)

第一步,配置config/main.php里面components的静态启用和路由规则启用

'urlManager' => [
    'enablePrettyUrl' => true,  //启用路由   
    'enablePrettyUrl' => true, // 启用 URL美化   
    'showScriptName' => false,//禁用 index.php
    'suffix'=>'.html',
    'rules'=>[
        '<controller:poor-per-info>/<action:get-area-list>/<pid:\d+>.html'=>'<controller>/<action>',
    ],
],

第二步按酱油老师说的配置那个hatccess文件

RewriteEngine on

# 如果是一个目录或者文件,就访问目录或文件
RewriteCond %{REQUEST_FILENAME} !-d

# 如果文件存在,就直接访问文件,不进行下面的RewriteRule
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule . index.php

第三步:然后我通过这个地址就总是出现404错误呢

http://www.demo.com/poor-per-info/get-area-list/2.html?_=1457167371875

但是我通过这个地址来测试就是正常访问200OK的成功页呢:

http://www.demo.com/poor-per-info/get-area-list.html?_=1457167440517

我只是多了一个pid的参数而已,怎么就总是出现404错误的呢?

我该配置的两个地方都是配置了的, 是不是还要在PoorPerInfo控制器里加个use yii\web\urlManager,但是我觉得这样肯定不对!

求大神们指导一下,还有什么地方需要配置的

pid 后面的 .html 就不要了,
suffix 就是后缀了。

获取不到微信服务post的xml数据[2.0]

BraveFox阅读(86)

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];获取不到微信服务器post给我的xml数据
在网上查了下另一种写法
$postStr = file_get_contents('php://input');就可以获取到了
什么原因?
这个$GLOBALS是可以打印的,应该不是register_globals禁止的问题吧

xml的content-type是application/xml,$_POST($GLOBALS["HTTP_RAW_POST_DATA"])都只能解析Content-Type:application/x-www-form-urlencodedContent-Type: multipart/form-data,而php://input的内容包括除了header之外的所有请求内容,无论任何content-type

怎么限制usermodule必须登录才能访问[2.0]

Elliesuper阅读(86)

frontend/modules/user/Module.php
namespace frontend\modules\user;
class Module extends \yii\base\Module
{
    public $controllerNamespace = 'frontend\modules\user\controllers';

    public function init()
    {
        parent::init();

        //该模块必须登陆用户访问
        if (\Yii::$app->user->isGuest){
            return \Yii::$app->response->redirect(\Yii::$app->homeUrl);
        }

        return true;
    }
}
return \Yii::$app->response->redirect(\Yii::$app->homeUrl);

这端代码能执行,就是不能跳转

下面是在controller里面实现的逻辑
Application.php

public function beforeAction($action)
{
        if (!parent::beforeAction($action)) {
            return false;
        }

        if (Yii::$app->user->isGuest){
            return $this->redirect(['site/index']);
        }

        return true;
}

同样能执行到跳转这边,就是跳转不来

解决方案

user module 所有controller都会继承该ApplocationController

<?php
namespace frontend\modules\user\controllers;

use Yii;
use yii\web\Controller;

class ApplicationController extends Controller
{
    public function beforeAction($action)
    {
        if (!parent::beforeAction($action)) {
            return false;
        }

        if (Yii::$app->user->isGuest){
            return $this->goHome()->send();//这边需要家send(),不然无法跳转,Yii 2.0.7
        }

        return true;
    }
}

个人感觉逻辑不太对,登录认证应该在控制器中就控制了,而不是应该在模型中去判断,请求肯定是先到控制器,然后对应的action中进行处理,action负责加载一个数据模型,一般是从数据库中加载。那么,如果这个用户没有登录,应该在加载模型之前就判断好
return $this->goHome();
module.php
可以实现跳转。
我的头头解释的。
redirect可能有点类似于异步,在本地速度快,马上返回了302跳转,然后再return
线上网速慢,本地还没收到302跳转,就return了,init收到return后,就会继续往下执行

请问小伙伴们Girdview列表行如何居中[2.0]

Anielephant阅读(104)

我要居中

我知道有一个属性可以设置行样式,但是这个属性代表了全部行的样式
‘rowOptions’=>[‘class’=>’text-center’],//行样式

其实我就是想让某列居中,不希望全部居中! 请问小伙伴们,有招解决不?

有一个headerOptions 的属性,
http://www.yiichina.com/doc/api/2.0/yii-grid-column#$headerOptions-detail
你可以去看看~
追代码 从源头解决 yii2 我发现这些问题都是由 Options 来设置的
。。。。。。

登录

找回密码

注册