2016-03-01 00:08:24 4647次浏览 1条回答 1 悬赏 10 金钱

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;
        }
    }
}

最佳答案

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
搞搞的传奇
见习主管

搞搞的传奇

注册时间:2015-02-24
最后登录:2020-06-04
在线时长:24小时46分
  • 粉丝8
  • 金钱5
  • 威望10
  • 积分345

热门问题