谁一开始就是大神?

PHP 第83页

PHP

ajax修改下拉框内的值[2.0]

Anilove阅读(29)

article文件夹 index.php代码

[
    'attribute' => 'cate',
    'format' => 'raw',
    'value' => function($model){
        return Html::dropDownList("cates[{$model->id}]",$model->cate,\common\models\Article::$cates)    
    }
],

我想做成下拉框内的值改变时,触发一个方法 把数据库内的值改掉,用ajax怎么写啊?
求大神代码指点

return Html::dropDownList("cates[{$model->id}]",$model->cate,\common\models\Article::$cates,['onchange' => "update($model->id)"])
再去控制器里写对应的更新操作
大概流程就是这样 代码可能会有些小问题 你自己再调试下

会员登录信息是以什么样的形式存放在Yii::$app->user->identity里面的?

Cleversea阅读(30)

会员登录信息 是以什么样的形式存放在Yii::$app->user->identity 里面的?

又不是session?那是什么?文件的形式存储?

通常…
session里面存放了用户id,
然后具体数据 是通过user组件配置的 identityClass 这个类中 findIdentity($id)来获取的;
所以, 具体数据 你想怎么存, 完全可以自己在 findIdentity方法中定义;
以上所述, 针对通常的web登陆
当然是Session啦
这个__id就是用户id
你用Yii Debugger看看
存在session也是个 对象。感觉 没有直接存数据 效率高。

Yii2-admin扩展的menu的高级使用[2.0]

Tinapony阅读(32)

据说可以实现 “不同角色都有自己的菜单” ,请使用过的指导下,是需要怎么设置还是?

我现在创建的菜单就全角色都一样没区别

仅供参考,这是我自己实现的menu里面用来检查权限的方法
输出菜单前先判断当前用户是否有权限。
或者,给每类权限都建立一个菜单,输出对应的菜单。
它的menu没有详细去看,我目前使用的方法是直接echo菜单出来,echo前判断下当前用户是否有权限。
或许menu里是自动会判断权限问题,而你的配置中是全部角色权限都一样,所以看到的都一样。
mark mark

Yii2.0验证码问题[2.0]

youthhope阅读(29)

public function actions()
{
    return [
          'captcha' => [
            'class' => 'yii\captcha\CaptchaAction',                 
            'fixedVerifyCode' => substr(mt_rand(1000,9999),0,4),//直到加了这个代码就出问题了
            'minLength' => 4,
            'maxLength' => 4,                
        ],
        'error' => [
            'class' => 'yii\web\ErrorAction',
        ],
    ];
}

本来一切正常,字母显示4个,能正常验证登录。
为了降低验证码难度,想改成4个数字,添加了这行代码
'fixedVerifyCode' => substr(mt_rand(1000,9999),0,4),
能正常显示4个数字了,但是输入正确的验证码后,就是提示验证码错误,这个该怎么排查原因?

使用 fixedVerifyCode 之后, 并没有写 session.
也就是说, 使用了 fixedVerifyCode 之后 生成验证码的时候直接返回了 fixedVerifyCode 的值, 验证的时候 又是拿你输入的 和 fixedVerifyCode的值做对比.. 而你的fixedVerifyCode 每次都变.
你看 fixedVerifyCode 注释, 讲的很清楚, 通常用在自动化测试 方便复制验证码的场景下使用.
非要使用四位数字的话, 继承并重写一下 yii\captcha\CaptchaAction 类里面的 生成验证码的策略吧.
“通常用在自动化测试 方便复制验证码的场景下使用”,不懂这句话是什么意思,求大神讲解。

问下如果yii2框架文件里头没有.bowerrc和.gitignore会不会造成什么问题?[2.0]

Hazelseagull阅读(27)

yii2里的.bowerrc和.gitignore没有会不会带来什么问题?

出了点问题把服务器上的yii重新从本地上传了,发现本地的.bowerrc和.gitignore(就最原始的basic目录下的这2个)怎么都上传不上去,然后我运行服务器上的代码,还是可以正常执行的,所以想问下这2个文件是做什么用的,没有的话,会不会带来什么问题?

.gitignore 是使用 Git 开发时,用于忽略不必要提交的文件,比如忽略程序自动产生的临时文件。
.bowerrc 是使用 Bower 的一个配置文件。
你的服务器可是 linux ?如果是的话,不是上传不了,是已经上传了,只不过是因为名称前有一个小点 .,被服务器隐藏了。linux 下名称前加个小点可用于隐藏文件。
这两个文件上传不到服务器也不要紧。

Yii2中如何让图片不显示图片名而是显示图片[2.0]

littlehappy阅读(29)

数据库里存的图片字段为:pic 格式是:C:\xampp\htdocs\weidu\v1.weidu.com/files/case02.jpg
index.php页面:
如何让图片显示,不是显示图片名,而是显示图片

你这个路径应该只有上传图片的那台设备上能看到..
看你在你的 folder 存甚麼路徑
從 web 下 的 /files/case02.jpg
好问题,没有标注功能,特来标记一下。
以下情况为数据库pic字段存的是图片文件名
经测试,可以使用
另外,DetailView内匿名函数不可用

关于模板的缩写[2.0]

Kindpony阅读(32)

<?= Html::encode($message) ?>
这种写法比较古老,是一种缩写形式。
我看了下 我的php.ini 配置 short_open_tag = off
但是 竟然在YII 下 正常运行
感觉好奇怪,

你们不感觉奇怪么
求大姐 大哥 解释下。

官網寫的~~PHP5.4之後 都是可執行的
http://php.net/manual/en/ini.core.php

帮忙改一下,路径老是出错[2.0]

CGfrog阅读(33)

modules\article\views\admin\action.php代码

<script>
    function checked($id){
        var vals = $("#name").val();
        var id=$id;
        $.ajax({
            type:'post',
            url:"<?= yii\helpers\Url::to(['admin/up']) ?>",路径老是出错
            data:{name:vals,id:id},

            success:function(msg){
                alert(msg);
                //$("#name").val(vals);
            }
        });
    }
</script>

  <?= app\widgets\GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
       ['class' => 'yii\grid\CheckboxColumn'],
       'title',
        [
            'attribute' => 'cate',
            'format' => 'raw',
            'value' => function($model){
                return Html::dropDownList("cates[{$model->id}]",$model->cate,\common\models\Article::$cates,['id'=>'name','onchange' =>"checked($model->id)"]) ;
            }
        ],
      [
            'class' => 'app\widgets\ActionColumn',
            'template' => '{update} {view} {delete}',
       ],
    ]

])?>

modules\article\controllers\AdminController.php代码,我建了一个up方法,想通过它来修改ajax传过来的值

   public function actionUp(){
        
    }

请各位大神帮忙解决一下,哪里有问题,控制文件里帮忙完善起来。

你说的路径出错是报的是 404还是400。如果是400,提交的数据无法被验证的话,那无关路径,可能是yii本身开启了 csrf,只需关闭 csrf认证,或在ajax那里提交csrf 就可以了。
关闭方法,在你的 AdminController.php 里加入
你可以参考这个:http://www.yiichina.com/tutorial/449
<?= Url::to([‘admin/up’]) ?>
use yii\helpers\Url; 命名空间加到顶部
代码复制出来看下
这是异步调用 返回的是json 打印不出来的
admin/up&name=1&id=2 这个url访问看下
你访问的url复制出来看下
var_dump(‘11111111111111111111111111111111111111111111111111’); 改成 echo 1;die;

save方法返回true,但是为什么数据并保存?[2.0]

Neodolphin阅读(29)

学习数据库保存中遇到了一个问题,控制器里的代码如下:

$entry = new EntryForm;
//如果是Post请求提交
if(Yii::$app->request->getIsPost()){
    //表单模型设置属性为post值
    $entry->setAttributes(Yii::$app->request->post());
    //表单模型数据验证
    if ($entry->validate()) {
        //正确
        $result = $entry->save();
        var_dump($entry->attributes);
    } else {
        //返回错误提示
        var_dump($entry->getErrors());
    }
}else{
    //如果不是Post请求,正常显示模板
    return $this->render('entry',['model'=>$entry]);
}

最后能返回插入的id和数据,数据表里面相应的字段为空,只有id。

帖上EntryForm的代码:

<?php
namespace app\models;

use yii\db\ActiveRecord;

class EntryForm EXTENDS ActiveRecord{

    public $name;
    public $email;

    public static function tableName()
    {
        return '{{user}}';
    }

    public function rules()
    {
        return [
            [['name','email'],'required','message'=>'请填写!'],
            ['email','email','message'=>'邮箱格式不正确!'],
        ];
    }

}

这里有问题,2.0的表前缀是`
{{%user}}

save()时报500错误[2.0]

Noblelovely阅读(29)

在一个ajax发送请求和保存数据的时候报500错误
代码:

$res = new Apptxt();
			   
$res->datetime = time();
$res->appid = 7;
$res->content = "123456";
$res->creater = 7;
$res->isdel = 0;
$res->save();

错误代码

Exception 'ReflectionException' with message 'Class numerical does not exist' 

in C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\di\Container.php:415

Stack trace:
#0 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\di\Container.php(415): ReflectionClass->__construct('numerical')
#1 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\di\Container.php(358): yii\di\Container->getDependencies('numerical')
#2 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\di\Container.php(151): yii\di\Container->build('numerical', Array, Array)
#3 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\BaseYii.php(344): yii\di\Container->get('numerical', Array, Array)
#4 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\validators\Validator.php(206): yii\BaseYii::createObject(Array)
#5 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\Model.php(440): yii\validators\Validator::createValidator('numerical', Object(app\models\Apptxt), Array, Array)
#6 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\Model.php(404): yii\base\Model->createValidators()
#7 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\Model.php(184): yii\base\Model->getValidators()
#8 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\Model.php(340): yii\base\Model->scenarios()
#9 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\db\ActiveRecord.php(416): yii\base\Model->validate(NULL)
#10 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\db\BaseActiveRecord.php(589): yii\db\ActiveRecord->insert(true, NULL)
#11 C:\xampp\htdocs\coupon\controllers\NrkController.php(219): yii\db\BaseActiveRecord->save()
#12 [internal function]: app\controllers\NrkController->actionEdittxtmsg('0')
#13 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\InlineAction.php(55): call_user_func_array(Array, Array)
#14 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\Controller.php(151): yii\base\InlineAction->runWithParams(Array)
#15 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\Module.php(455): yii\base\Controller->runAction('edittxtmsg', Array)
#16 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\web\Application.php(84): yii\base\Module->runAction('nrk/edittxtmsg', Array)
#17 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
#18 C:\xampp\htdocs\coupon\web\index.php(12): yii\base\Application->run()
#19 {main}

可能是因为什么,求大腿指教

是不是在Apptxt类里的rules里面给哪个属性加了个数字验证,把number打成了numerical?yii2里面没有内置叫numerical的验证类
粗心该打屁屁,哇咔咔~

登录

找回密码

注册