制作item和category的mvc视图总结
View层index.phg 代码:
<?php use yii\helpers\Html;
use yii\grid\GridView;
use yii\widgets\Pjax;
use frontend\models\Item;
/* @var $this yii\web\View */
/* @var $searchModel frontend\models\ItemSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */ $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'=>'yii\grid\CheckboxColumn'],//复选框列显示
['class' => 'yii\grid\SerialColumn'],
[ //根据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' => 'yii\grid\ActionColumn',//操作列 ],
],
]); ?>
<?php Pjax::end(); ?>
</div>
model层代码:
<?php namespace frontend\models; use Yii;
use frontend\models\Category;
/**
*
* @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 \yii\db\ActiveRecord
{ 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) Yii\helpers\ArrayHelper::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 层的代码不需要修改。
制作item和category的mvc视图总结的更多相关文章
- ASP.NET MVC 视图(三)
ASP.NET MVC 视图(三) 前言 上篇对于Razor视图引擎和视图的类型做了大概的讲解,想必大家对视图的本身也有所了解,本篇将利用IoC框架对视图的实现进行依赖注入,在此过程过会让大家更了解的 ...
- ASP.NET MVC 视图(二)
ASP.NET MVC 视图(二) 前言 上篇中对于视图引擎只是做了简单的演示,对于真正的理解视图引擎的工作过程可能还有点模糊,本篇将会对由MVC框架提供给我们的Razor视图引擎的整个执行过程做一个 ...
- MVC视图展现模式之移动布局解析-续集
网站就必须用响应式布局吗?MVC视图展现模式之移动布局:http://www.cnblogs.com/dunitian/p/5213787.html demo:http://pan.baidu.com ...
- ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门
一.前言 1.本教程主要内容 ASP.NET Core MVC 视图引擎(Razor)简介 ASP.NET Core MVC 视图(Razor)ViewData使用示例 ASP.NET Core MV ...
- 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图与控制器传递数据
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- ASP.NET Core 入门笔记6,ASP.NET Core MVC 视图传值入门
摘抄自:https://www.cnblogs.com/ken-io/p/aspnet-core-tutorial-mvc-view-renderdata.html 如有侵权请告知 一.前言 1.本教 ...
- ABP文档 - Mvc 视图
文档目录 本节内容: 简介 AbpWebViewPage 基类 简介 ABP通过nuget包Abp.Web.Mvc集成到Mvc视图里,你可以像往常那样创建常规的视图. AbpWebViewPage 基 ...
- ASP.NET MVC 视图(五)
ASP.NET MVC 视图(五) 前言 上篇讲解了视图中的分段概念.和分部视图的使用,本篇将会对Razor的基础语法简洁的说明一下,前面的很多篇幅中都有涉及到视图的调用,其中用了很多视图辅助器,也就 ...
- ASP.NET MVC 视图(四)
ASP.NET MVC 视图(四) 前言 上篇对于利用IoC框架对视图的实现进行依赖注入,最后还简单的介绍一下自定义的视图辅助器是怎么定义和使用的,对于Razor语法的细节和辅助器的使用下篇会说讲到, ...
随机推荐
- 【DataStructure】Some useful methods about linkedList.
/** * Method 1: Delete the input element x * and meanwhile keep the length of array after deleted n ...
- NSString (NSStringPathExtensions)
转自:http://linwwwei.iteye.com/blog/1407520 + (NSString *)pathWithComponents(NSArray *)components 根据co ...
- cocosbuilder的一些坑
主要是大小写问题 在扁平发布模式下,如果存在大小写不同的文件,文件会被替换掉.而模拟上运行没问题,在真机上运行 有问题.找了半天才发现,坑啊!
- C语言 · 约数个数
算法提高 约数个数 时间限制:1.0s 内存限制:512.0MB 输入一个正整数N,输出其约数的个数. 样例输入 12 样例输出 6 样例说明 12的约数包括:1,2,3,4,6,1 ...
- kernel 4.4.12 移植 HUAWEI MU609 Mini PCIe Module
首先请参考 http://www.cnblogs.com/chenfulin5/p/6951290.html 上一章刚讲了 kernel 3.2.0 移植 MU609 这一章记录新版kernel 的移 ...
- Redis 响应延迟问题排查
计算延迟时间 如果你正在经历响应延迟问题,你或许能够根据应用程序的具体情况算出它的延迟响应时间,或者你的延迟问题非常明显,宏观看来,一目了然.不管怎样吧,用redis-cli可以算出一台Redis 服 ...
- mysql 分区 限制
MySQL分区的限制 • 只能对数据表的整型列进行分区源码天空,或者数据列可以通过分区函数转化成整型列 • 最大分区数目不能超过1024 • 如果含有唯一索引或者主键,则分区列必须包含在所 ...
- KMP + 求最小循环节 --- HDU 1358 Period
Period Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=1358 Mean: 给你一个字符串,让你从第二个字符开始判断当前长度 ...
- EasyUI Window和Layout
我们建立tabs内容. <div class="easyui-window" title="Layout Window" icon="icon- ...
- datagrid鼠标悬浮提示
/** * 扩展两个方法 */ $.extend($.fn.datagrid.methods, { /** * 开打提示功能 * @param {} jq * @param {} params 提示消 ...