制作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语法的细节和辅助器的使用下篇会说讲到, ...
随机推荐
- Docker背景介绍
背景介绍 Docker是PasS提供商DoctCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上,基于go语言并遵从Apache2.0协议开源.Docker近期非常火热,无论是从 ...
- java运算符优先级和结合性
运算符 结合性 [ ] . ( ) (方法调用) 从左向右 ! ~ ++ -- +(一元运算) -(一元运算) 从右向左 * / % 从左向右 + - 从左向右 << >> & ...
- 缓存server设计与实现(五)
上次讲到lru与缓存重建,这次主要讲一下关于过期处理的一些主要问题. 在讨论这个问题之前,有个相关的问题须要大家有所了解. 就是对于一个缓存如期仅仅来说,什么东西应该缓存,什么不应该缓存.这是一个比較 ...
- docker使用问题总结
1. docker报[Error response from daemon: Error running DeviceCreate (createSnapDevice) dm_task_run fai ...
- angular学习疑问总结
服务里返回的数据是不是只能传给控制器,而不能传给指令呢?如果是的话那么指令只能通过配置scope属性来访问控制器里的数据
- 喵神 onevcat 的直播首秀
喵神 onevcat 的直播首秀 王巍在圈内人称喵神,我和他在网上很早就认识,平时多有交流.在我眼中,他是一个幽默风趣高手.虽然他的博客中主要内容是 iOS 开发,但是他实际上涉及的技术领域还包括 ...
- SecureCRT配置自动保存日志(实用)
点“选项”---“全局选项”--“全局选项”--“默认会话”--“编辑默认设置”--“日志文件” 在“日志文件”中输入相应的参数就能达到这一效果. 比如你的日志文件放在的D:/SecureCRT/lo ...
- ORACLE中DELETE和TRUNCATE的区别
语法 delete from AA truncate table AA 区别 1.delete from后面可以写条件(也就是where子句,delete from AA where aa.列名 = ...
- homebrew 无法安装,提示不能在根目录下使用
sudo chown -R $(whoami) /usr/local 把/use/local的owner換成自己,就有write權限了 whoami就是一個命令,會echo當前登錄用戶的名字.當然你知 ...
- RCC—使用 HSE/HSI 配置时钟 ---时钟树
本章参考资料:< STM32F4xx 中文参考手册> RCC 章节.学习本章时,配合< STM32F4xx 中文参考手册> RCC 章节一起阅读,效果会更佳,特别是涉及到寄存器 ...