谁一开始就是大神?

PHP 第70页

PHP

继承ActiveRecord的模型类如何添加自义属性[2.0]

littlelovely阅读(116)

gii根据数据库表生成的model是扩展自\yii\db\ActiveRecord。
一个简单的功能:上传产品信息至数据库表中,同时上传产品图片至目录下。

用gii生成了CRUD,然后结合手册中上传文件的示例代码,在create view里添加一个file input ,为了能验证上传是jpg或是png,于是在model里添加了rule,然后添加自定义字段,数据库内容是进去了,图片没上传。

gii根据数据库表生成的model是扩展自\yii\db\ActiveRecord。而文件上传示例代码中用的自定义表单扩展自yii\base\Model;是不是这里的问题?

这么个简单的功能,这么难找到示例代码…

namespace backend\models;

use Yii;
use yii\web\UploadedFile;

class JiaoyanAward extends \yii\db\ActiveRecord
{
	public $imageFile;//上传的图片
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'jiaoyan_award';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
           // [['term', 'poster', 'class', 'award', 'organization', 'photo', 'self_value', 'check_value', 'check_time', 'status', 'remark'], 'required'],
            [['term'], 'integer'],
            [['self_value', 'check_value'], 'number'],
            [['discount'], 'boolean'],
            [['post_time', 'check_time'], 'safe'],
            [['poster', 'class', 'organization'], 'string', 'max' => 50],
            [['award', 'photo', 'remark'], 'string', 'max' => 100],
            [['status'], 'string', 'max' => 10],
			[['imageFile'], 'file',  'extensions' => 'png, jpg'],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'term' => 'Term',
            'poster' => 'Poster',
            'class' => 'Class',
            'award' => 'Award',
            'organization' => 'Organization',
            'photo' => 'Photo',
            'self_value' => 'Self Value',
            'discount' => 'Discount',
            'check_value' => 'Check Value',
            'post_time' => 'Post Time',
            'check_time' => 'Check Time',
            'status' => 'Status',
            'remark' => 'Remark',
        ];
    }
	
	 public function upload()
    {
        if ($this->validate()) {
            $this->imageFile->saveAs('uploads/' . 'abc'. '.' . $this->imageFile->extension);
            return true;
        } else {
            return false;
        }
    }
}

最好不要改源文件 写个类来继承 修改子类

2个ActiveForm有啥区别?[2.0]

ACGdear阅读(123)

突然发现有2个ActiveForm 【yii\bootstrap\ActiveForm 和 yii\widgets\ActiveForm 】

想知道这2个Activeform 有啥区别呢?分别适合什么场景?

你可以看代码,yii\bootstrap\ActiveForm继承了yii\widgets\ActiveForm

【基础问题】Yii权威教程读不懂,关于RBAC的问题[2.0]

NiceStag阅读(135)

问题1:
  授权章节的RBAC中,首先提到:@yii/rbac/migrations,我通过搜索找到了这个目录的物理路径:Site\vendor\yiisoft\yii2\rbac。
  在之后的“使用规则”小节里,举栗代码的命名空间为“app\rbac;”,这个时候的rbac位于何处?
  如果要书面化这个命名空间,是否等同于:@app\rbac,那么@app的物理路径在哪?
  如果等同于models、views文件夹,我学习的是基础模板,是否需要自己创建rbac文件夹。

问题2:
  > ……在用 yii rbac/init 执行了这个命令后……
  yii rbac/init是什么?怎么用?

以上,希望前辈们给予解答。

app\rbac 的位置:
你说的对。目录 rbac 默认不存在,需要自己添加。
./yii rbac/init 是一个 console command.
Building Authorization Data 中提到的 RbacController.php 保存到如下位置:
之后在 Basic Template 根目录下执行

关于Yii2.0关于主题我有一大堆疑问呢![2.0]

likelypony阅读(110)

2.0 的默认主题是否可以彻底换掉.

关于 表单小部件 不兼容其他样式类么..

代码信息:

<?= $form->field($model, 'username',['class' => 'form-control input-lg' , 'placeholder' => '用户名 / 邮箱 / 手机']) ?>

错误信息:

ReflectionException
Class form-control input-lg does not exist

此问题毁在我手里面了..写完就找到答案了!..
正确的写法:

<?= $form->field($model, 'username')->textInput(['class' => 'form-control input-lg' , 'placeholder' => '用户名 / 邮箱 / 手机']) ?>

呵呵呵!.. 真天真..

下一个问题:按顺序加载的js 会受到组件加载的js 影响 js冲突 和 错误
S2XP7QDAG~JYU_O1OM}2XCC.png
按照图里信息还可以看到yii加载jquery 和一些其他的东西 ,因为我之前有加载过 jquery 所以一定会冲突!..

这里的class不是指css样式,是指php的类。
原来是这样。那后面的 placeholder 也是php类?

按照文档【安装Yii】中的步骤摘取的代码,部署后有问题[2.0]

Bravesuper阅读(119)

YII部署问题

如上图,直接用composer下载下来的,部署后就报上面的问题,我观察了下,多了以下目录:
YII模板目录

首先这个问题,不能这么解决。
你需要把Composer和fxp/composer-asset-plugin都更新到最新版本。
其次看fxp/composer-asset-plugin的文档来配置对应的路径。
切记不要修改框架源码,如果是框架的BUG你应该提供一个pull request或者issues,以供官方修复。
这个需要到www.yiiframework.com去看看了,这边的貌似没有跟进。你需要按着最新的方法来创建文件。
图看不见,楼主
看你错误路径和目录本来就不一样啊,
你把文件目录按照 错误提示 重新拷贝下试试
用composer好像又慢又容易出错,直接用下载归档文件多好
说说我的解决方法吧,我的开发和部署环境都是linux,所以我用了proxychain,这个可以让你在命令行下用代理的神器。当然,首先你得有一个国外的 代理,然后走着代理安装,速度就杠杠的了。
多说一句,yii2用composer安装,仅仅使用国内的composer源镜像速度也很慢的,原因在于fxp/composer-asset-plugin这个插件。

怎么去掉验证码前面的字母?[2.0]

momodolphin阅读(105)

怎么去掉 验证码前面的字母?输入图片说明

$form->field($model, 'verifyCode', ['template' => "{input}\n{hint}\n{error}"])->widget(Captcha::className()..........
打开源码,删除verify code.
我只能说这么多了
设置’template’属性

怎么加载网站的ico图标[2.0]

Fionalemon阅读(111)

如题,在yii2中怎么加载一个ico图标

和别的网站一样的处理方式,没啥不一样
ico没有专门的加载吧,就放在根目录就行了吧
利用调试工具看一下资源文件有没有正常加载

循环栏目下的所有二级栏目,每个栏目列出10条新闻。[1.1]

fationhope阅读(108)

现在分类只有一级和二级,知道一级的分类ID,可以查询出所有二级分类ID和名字,但是怎么循环查出每个分类下10条新闻,
现在控制器代码如下:

        $minlist = CateUtils::getMinCateList($cid); //获取所有下级栏目ID和名字
        foreach ($minlist as $k => $v) {
            $sql = "select id,catid,mincate,title from daquan_article where mincate = $k limit 5";
            $list['list1'] = Article::model()->findAllBySql($sql);
            var_dump($list);    //在这里可以每个二级栏目输出10条新闻,但是不知道怎么赋值到views

        }
        var_dump($list);  //这里只能输出第一个二级栏目的10条新闻

大神们帮忙看下,是哪里有问题。谢谢

$list['list1']
修改为
循环外怎么可能直接获得循环内的数据,美术老师教的?
比如有文章表 Article(Id,Category,InsertDate),现在要用SQL找出每种类型中时间最新的前N个数据组成的集合。
@N 就是你要取多少条

用户登录和自动登录的问题[2.0]

FionaJames阅读(114)

yii默认的用户登录,是以它原本提供的user表的结构进行验证的,但是,如果是原有的系统进行重构,原有的用户表设定并不是和yii提供的user表的结构类似,简单的说,密码的加密就不是按照yii提供的加密方式进行,也没有auth_key,access_token,那么,如果在这种结构上进行登录验证,如何做呢?

还有自动登录的问题,yii在设定了自动登录后,下次就不需要重新登录了,此时,如果管理员修改了用户的信息,比如,修改了用户的密码,那么,由于用户是自动登录的,也就意味着已经没有验证新密码,就访问到系统了,这种情况如何解决呢?

先解释自动登录的问题,就刚好用到auth_key,自动登录是根据cookie,获取cookie中用户id,然后去数据库获取用户信息,然后在查询出来的用户信息中auth_key和cookie中的auth_key进行匹配,在改密码后,会改auth_key字段的内容,匹配失败,要重新登录。
同理,access_token也是自动登录用的,一般是登录链接上带一长串字符,访问就可以登陆了。
没有这两个字段,access_token自动登录方式不能使用,cookie登录验证也会失败。
如果一定不用这2个字段,access_token自动登录方式不要用,cookie登录去掉auth_key验证(当然,这会出现你说的改密码不需要重登的问题。)。
呃呃呃呃呃呃,多点了一次,还不能删除了。

登录

找回密码

注册