谁一开始就是大神?

PHP 第49页

PHP

如何删除yii2的扩展[2.0]

Aibyapple阅读(59)

为了偷懒省力,喜欢用yii2-start-kit之类的构建开放模板,安装时会装一大堆扩展,一些实用的扩展很不错。
但是一些扩展肯定是用不上,配置在那里,会不会影响页面加载速度?想删掉他们,需要怎么操作,有命令吗?还是手工删除文件,再修改一些文件?

具体怎么操作谢谢。

同事求大神们的composer.json文件内容

咋说呢?pv每天低于20万的时候,个人觉得优化sql对速度的提升更大。手工删除么?就是在composer文件里删除,然后update,当然最好先看看依赖关系。
composer里直接删,然后update就ok了

双语切换的网站大家一般怎么做的,给个思路[2.0]

richlemon阅读(55)

双语切换的网站大家一般怎么做的,给个思路

加参数、或者写session,或者全站静态分目录。
两套模板应该可以了吧,数据还是一套?不知道是不是这样
其实就是皮肤不一样而已
我做过的是:程序一套+语言文件,数据库两套(数据库内容也需要双语言);根据域名区分语言
调用百度翻译的接口

yii2redactor编辑器上传不了图片[2.0]

Lvyslim阅读(53)

一直报403没有访问权限
WKVJ1NBI7{~MZGR07OIX0DE.png

下面是表单代码:

         <?= $form->field($model, 'content')->widget(Redactor::className(),
                    [
                        'clientOptions' => [
                            'imageManagerJson' => ['/redactor/upload/image-json'],
                            'imageUpload' => ['/redactor/upload/image'],
                            'fileUpload' => ['/redactor/upload/file'],
                            'lang' => 'zh_cn',
                            'plugins' => ['clips', 'fontcolor','imagemanager','video'],
                            'minHeight'=>250,
                        ]
                    ]
                ) ?>

配置文件:

    'modules' => [
        'admin'=>'app\modules\admin',//后台模块引用
        'redactor' => [
            'class' => 'yii\redactor\RedactorModule',
            'uploadDir' => '@webroot/uploads',
            'uploadUrl' => '@web/uploads',
            'imageAllowExtensions'=>['jpg','png','gif'],
             ],
    ],

就帮助

兄弟我也弄好了,原来是我对别名理解不够透彻导致的
同问!希望高手回答@=

验证码[2.0]

CleverCherry阅读(51)

Either 'name', 'captcha', or 'model' and 'attribute' properties must be specified.

要么是“名称”,或“模型”和“属性”属性必须指定。
这是什么问题?????

是view中的widget参数没有填写正确
这个跟验证码没有关系吧,可能是表单提交的时候,猜测可能需要输入对应的规则,
`
`
我也是这个问题 不知道怎么弄了 这框架文档都没有 真恶心

GridView中的ActionColumn的template可以根据状态显示不同[2.0]

SwiftEagle阅读(57)

2016-09-09 18:21:14屏幕截图.png

最终想实现上图效果。
根据状态的不同,可选的操作不同。
我写的逻辑如下图,但是总报错。说是object 转化string 有问题,但是这样写的template的类型是 string

'template' => function ($model) {
                    $temp = [
                        '0' => '{view:view} {update:update} {delete:delete} {show:show}',
                        '1' => '{view:view} {update:update} {delete:delete} {hide:hide}',
                        '2' => '{view:view} {delete:delete}'
                    ];
                    return $temp[$model->state];
                },

我在接口上看template的定义

The template used for composing each cell in the action column. Tokens enclosed within curly brackets are treated as controller action IDs (also called button names in the context of action column). They will be replaced by the corresponding button rendering callbacks specified in $buttons. For example, the token {view} will be replaced by the result of the callback buttons[‘view’]. If a callback cannot be found, the token will be replaced with an empty string.

As an example, to only have the view, and update button you can add the ActionColumn to your GridView columns as follows:

写的问题在那哪里呢,还是不可以实现的啊

你这明显不对嘛。他的api里面写着$template是string类型。你乱来。要这么写:
$template = ‘{preview}{update}{up}{down}{delete}’,就是把你所有可能出现的操作写进去,然后设置ActionColumn的buttons属性:
‘buttons’ => [
‘preview’ => function($url, $model, $key) {
},
…其他button
];
要在buttons里面判断是否显示这个链接。

模板渲染[2.0]

youthcrab阅读(50)

QQ截图20160914170457.png

QQ截图20160914170427.png

QQ截图20160914170417.png

为什么会出现model为定义 怎么定义modul

你需要传替一个$model参数;如:$model = new User();
楼上正解~~

linux环境下项目出现数值超出范围的异常[1.1]

Dmlovely阅读(52)

clone了一个项目,部署在wamp环境下没有出现任何问题,但是当我部署在lnmp环境下时,项目运行起来之后,我个某个功能里插入数据时,出现说数据查超出范围的异常,数据表中的一个字段是ip,也就是说存ip时出现了这个问题,但是在wamp环境下都没啥问题的,为什么在lnmp环境下就出现这个问题呢?不知如何解决。捕获.PNG

新版本的MySQL对字段的严格检查;肯定是这个ip字段设置有问题。
2中方法:1修改ip字段,2修改mysql中的sql_mode;

如何在gridview进行筛选数据[2.0]

richapple阅读(50)

QQ图片20160909103342.png

如图,现在需求是点击这个图上的小块(可以多选),就能对数据进行筛选,请问大神们这个怎么弄

js方法post本页,保留数据,或者get或者ajax,保留当前点击了哪些应该就行吧
这就不是一个ajax么,点中谁,获取当前的值,传入到后台对应接口,然后返回筛选的值即可

linux怎样忽略mysql数据表的大小写问题

Kimfans阅读(49)

将项目部署在本地的LNMP环境下,发现无法识别数据库表明,但是数据库是线上的,无法去修改它

如图:1.PNG

直接忽略mysql大小写就好了吧。
用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加lower_case_table_names=1,重启MYSQL服务。
Linux是严格区分大小写的,养成习惯就好咯,
至于你说问题,你可以配置本地数据库来测试,毕竟你要开发,总不至于用线上的数据吧。

AR模型没有按照预期工作[2.0]

momoFox阅读(50)

表设计如下:

CREATE TABLE `user` (
   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
   `username` varchar(50) NOT NULL DEFAULT '',
   `password` varchar(50) NOT NULL DEFAULT '',
   `authKey` varchar(50) NOT NULL DEFAULT '',
   `accessToken` varchar(50) NOT NULL DEFAULT '',
   `lock` int(11) NOT NULL DEFAULT '-1',
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=102 DEFAULT CHARSET=utf8;

有两条记录如下:
100 admin admin test100key 100-token -1
101 demo demo test101key 101-token -1

对应的AR模型类如下:

class User extends ActiveRecord implements \yii\web\IdentityInterface
{
    public $id;
    public $username;
    public $password;
    public $authKey;
    public $accessToken;

    /**
     * @inheritdoc
     */
    public static function findIdentity($id)
    {
        return isset(self::$users[$id]) ? new static(self::$users[$id]) : null;
    }

    /**
     * @inheritdoc
     */
    public static function findIdentityByAccessToken($token, $type = null)
    {
        return self::find()->where(['accessToken'=>$token])->one();
    }

    /**
     * Finds user by username
     *
     * @param  string      $username
     * @return static|null
     */
    public static function findByUsername($username)
    {
        return self::find()->where(['username'=>$username])->one();
    }

    /**
     * @inheritdoc
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @inheritdoc
     */
    public function getAuthKey()
    {
        return $this->authKey;
    }

    /**
     * @inheritdoc
     */
    public function validateAuthKey($authKey)
    {
        return $this->authKey === $authKey;
    }

    /**
     * Validates password
     *
     * @param  string  $password password to validate
     * @return boolean if password provided is valid for current user
     */
    public function validatePassword($password)
    {
        return $this->password === $password;
    }
}

具体调用代码如下:

$username = 'demo';
$user = User::findByUsername($username);
print_r($user);

按照AR模型的定义,应该输出如下的结果的:

app\models\User Object
(
    [id] => 100
    [username] => admin
    [password] => admin
    [authKey] => test100key
    [accessToken] => 100-token
    [_attributes:yii\db\BaseActiveRecord:private] => Array
        (
            [id] => 100
            [username] => admin
            [password] => admin
            [authKey] => test100key
            [accessToken] => 100-token
            [lock] => -1
        )

    [_oldAttributes:yii\db\BaseActiveRecord:private] => Array
        (
            [id] => 100
            [username] => admin
            [password] => admin
            [authKey] => test100key
            [accessToken] => 100-token
            [lock] => -1
        )

    [_related:yii\db\BaseActiveRecord:private] => Array
        (
        )

    [_errors:yii\base\Model:private] => 
    [_validators:yii\base\Model:private] => 
    [_scenario:yii\base\Model:private] => default
    [_events:yii\base\Component:private] => Array
        (
        )

    [_behaviors:yii\base\Component:private] => Array
        (
        )

)

但是数据结果却是:

app\models\User Object
(
    [id] => 
    [username] => 
    [password] => 
    [authKey] => 
    [accessToken] => 
    [_attributes:yii\db\BaseActiveRecord:private] => Array
        (
            [id] => 100
            [username] => admin
            [password] => admin
            [authKey] => test100key
            [accessToken] => 100-token
            [lock] => -1
        )

    [_oldAttributes:yii\db\BaseActiveRecord:private] => Array
        (
            [id] => 100
            [username] => admin
            [password] => admin
            [authKey] => test100key
            [accessToken] => 100-token
            [lock] => -1
        )

    [_related:yii\db\BaseActiveRecord:private] => Array
        (
        )

    [_errors:yii\base\Model:private] => 
    [_validators:yii\base\Model:private] => 
    [_scenario:yii\base\Model:private] => default
    [_events:yii\base\Component:private] => Array
        (
        )

    [_behaviors:yii\base\Component:private] => Array
        (
        )

)

这样使用$user->id显然不能访问该记录的字段,所谓AR模型也就没与意义了,此时如果我给$user->username赋新值,然后调用$user->save(),我的本意是修改一条记录的,但是结果却是新增了一条记录。这个问题有没有人察觉过,这究竟是yii2的bug还是有意为之,如果有意为之的话,这样做的道理何在?

YII2 的AR底层已经重写了get()和set()方法 他取值的时候 get()方法是在attributes这个地方获取的 所以请不要在模型中定义数据库字段 如果不懂 用gii生成数据库模型 或者看看框架下载安装好的例子

登录

找回密码

注册