zoukankan      html  css  js  c++  java
  • 制作item和category的mvc视图总结

    View层index.phg 代码:

    <?php
    
    use yiihelpersHtml;
    use yiigridGridView;
    use yiiwidgetsPjax;
    use frontendmodelsItem;
    /* @var $this yiiwebView */
    /* @var $searchModel frontendmodelsItemSearch */
    /* @var $dataProvider yiidataActiveDataProvider */
    
    $this->title = 'Items';
    $this->params['breadcrumbs'][] = $this->title;
    ?>
    <div class="item-index">
    
        <h1><?= Html::encode($this->title) ?></h1>
        <?php Pjax::begin(); ?>
        <?php // echo $this->render('_search', ['model' => $searchModel]); ?>
    
        <p>
            <?= Html::a('Create Item', ['create'], ['class' => 'btn btn-success']) ?>
        </p>
    
        <?= GridView::widget([
            'dataProvider' => $dataProvider,
            'filterModel' => $searchModel,
            'columns' => [
                ['class'=>'yiigridCheckboxColumn'],//复选框列显示
                ['class' => 'yiigridSerialColumn'],
                [   //根据cate_id在model的静态方法里面查询category的cate_name显示
                    'attribute' =>'cate_id',
                    'value' => function($model){
                        return Item::get_type_text($model->cate_id);
                    },
                    //'filter' =>是下拉列表过滤器
                    'filter' => Item::get_type(),
                ],
                'name',
                'buy_price',
                'sell_price',
                [
                    'attribute' => 'created_at',
                    'format'=>['date','php:Y-m-d H:m:s'],//日期格式显示
                ],
                [
                    'attribute' => 'updated_at',
                    'format'=>['date','php:Y-m-d H:m:s'],
                ],
                [
                    'attribute' => 'status',
                    'value' => function($model){
                        return $model->status == 1?'在售':'停售';//判断model给的status数据,为1时候是在售
                    },
                    'filter' => ['停售','在售'],//下拉筛选框
                ],
                // 'img_url:url',
    
                [
                'class' => 'yiigridActionColumn',//操作列
    
                ],
            ],
        ]); ?>
        <?php Pjax::end(); ?>
    </div>

    model层代码:

    <?php
    
    namespace frontendmodels;
    
    use Yii;
    use frontendmodelsCategory;
    /**
     *
     * @property string $id
     * @property integer $cate_id
     * @property string $name
     * @property double $buy_price
     * @property double $sell_price
     * @property integer $created_at
     * @property integer $updated_at
     * @property integer $status
     * @property string $img_url
     */
    class Item extends yiidbActiveRecord
    {
    
        public static $category;//使用了静态变量category
    
        function __construct() {
    
           parent::__construct();
    
           if(is_null(SELF::$category)){//单一模式,只生成一个category。
    
            SELF::$category=Category::find()->select(['cate_id','cate_name'])->all();
    
           }
       }
    
        /**
         * @inheritdoc
         */
        public static function tableName()
        {
            return 'item';
        }
    
        /**
         * @inheritdoc
         */
        public function rules()
        {
            return [
                [['cate_id', 'created_at', 'updated_at', 'status'], 'integer'],
                [['buy_price', 'sell_price'], 'number'],
                [['created_at', 'updated_at'], 'required'],
                [['name'], 'string', 'max' => 100],
                [['img_url'], 'string', 'max' => 255],
            ];
        }
    
        /**
         * @inheritdoc
         */
        public function attributeLabels()
        {
            return [
                'id' => '编号',
                'cate_id' => '类别',
                'name' => '品名',
                'buy_price' => '采购价(HKD)',
                'sell_price' => '销售价(CNY)',
                'created_at' => '创建时间',
                'updated_at' => '更新时间',
                'status' => '状态',
                'img_url' => 'Img Url',
            ];
        }
    
        /**
        * 通过栏目id获得栏目名称
        * @param unknown $id
        * @return Ambigous <unknown>
        */
        public static function  get_type_text($id){
    
            /*
            *array_column(array,column_key,index_key);
            *php自带函数array_column(array,column_key,index_key)
            *替换了(use) YiihelpersArrayHelper::map();
            */
            $datas =array_column(SELF::$category,'cate_name','cate_id');
    
            return  $datas[$id];
        }
    
      //生成下拉筛选框,选择哪个以后key值会返给查询,key值就是item的cate_id
    public static function get_type(){ $cat = array_column(SELF::$category,'cate_name','cate_id'); return $cat; } }

    itemSearch 层的代码不需要修改。

  • 相关阅读:
    支付
    mui自定义事件带参返回mui.back()
    tomcat+nginx反向代理(实现一个服务器,一个ip共用80端口)
    mui.back()返回刷新功能
    WiFi(网络)调试Android手机
    mysql获取外键, 根据数据库名和表名获取表所对应的所有外键
    @RequestBody接收json字符串,自动将日期字符串转换为java.util.Date
    使用MySQLWorkBench绘制ER图
    jpa动态分页查找
    displaytag的Excel导出实践
  • 原文地址:https://www.cnblogs.com/jerrypro/p/6412065.html
Copyright © 2011-2022 走看看