首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Yii2 学习笔记之 GridView DetailView

在 GridView 小部件是从数据提供者获取数据,并以一个表格的形式呈现数据。表中的每一行代表一个单独的数据项,列表示该项目的属性。...在 DataGrid 小部件中的列是在 yii\grid\Column 类中进行配置的。它代表一个模型属性,并可以进行过滤和排序。 GridView 列显示常用操作 <?...($model){ return Html::a('属性列表', ['test/index','id'=>$model->id]); }...表,调用他的分类名,所以为了性能,在这里join一下 $query->join('articleType'); //如果增加的字段需要表头排序,则可加入以下代码...' => $this->article_type_id, ]); // 时间搜索,用户在view上面输入的是字符串的时间,而数据库存放的是时间戳,需转换匹配

2.2K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Yii数据库操作方法指南

    ,当query()不是,他返回一个代表结果集的对象 // YII中的CDbTransaction类用于事务 // 首先,建立一个连接 $connection = Yii::app()->db; //...// 因此,读取一行记录,列值将自动填充到对应的PHP对象中 // 比如这样: $connection = Yii::app()->db; $sql = "SELECT username, email...AR类中的一个属性表示,如果试图通过属性访问表中没有字段,将会抛出一个异常。...'id' 是关联表中的一个字段,但他不是主键,现在将它指定为主键 } // 实例化一个AR,填写信息(类似于填充用户提交的信息),然后保存 $post = new Post; $post->title...; $posts=$user->posts(array('condition'=>'status=1'));        // 返回的都是AR对象, 而不是数据 // 统计查询 class Post

    1.5K70

    Yii2工作中的一些方法技巧

    ` DESC) `tmpA` GROUP BY `post_id` sql计算字段中相同值重复次数,并排序 $query = static::find() ->select(['package_uuid...Yii::app()->request->url 只想获取url中的参数部分: # r=news&id=1 Yii::$app->getRequest()->queryString 获取某个参数的值...()->getReferrer() 前端显示 英文不换行问题 当GridView和DetailView列表中的某一条内容为连续的英文或数字(比如网站链接等)时,该内容会不换行,导致该列宽度被顶的特别长...-GridView 中让关联字段带搜索和排序功能 情境要求: 要在订单(Order)视图的gridview中显示出客户(Customer)姓名,并使其具有与其它字段相同的排序和搜索功能。...数据库结构 订单表order含有字段customer_id 与 客户表customer的id字段关联 首先确保在Order Model中包含以下代码: public function getCustomer

    3.3K31

    Yii2之数据库迁移(Migrate)

    在开发和维护一个数据库驱动的应用程序时,数据库的结构会随代码的改变而改变。...就是说我并不直接写字段的类型,我只是写不同数据库中类似的字段定义。举个例子: mysql数据库中有text数据类型,用来存储大文本一类数据。...而mssql数据库中并没有text数据类型,但是有个类似的数据类型,叫做ntext。如果在数据库迁移到mysql的时候直接写实体字段类型text,那么如果改换数据库为mssql的时候就会很麻烦。...如下是所有这些数据库访问方法的列表: yii\db\Migration::execute(): 执行一条 SQL 语句 yii\db\Migration::insert(): 插入单行数据 yii\db...): 删除一张表 yii\db\Migration::truncateTable(): 清空表中的所有数据 yii\db\Migration::addColumn(): 加一个字段 yii\db\Migration

    1.7K41

    定义多场景的表单

    定义多场景的表单 下面是一个带有添加/编辑的文章表单示例: namespace app\forms; use Yii; use app\models\Article; class ArticleForm...; } } 以上表单中,add方法就是添加文章的业务逻辑,edit方法是编辑文章咯,可是两个业务要验证的用户端输入参数都包含了title和content,所以要通过scenarios方法来声明两个场景要校验的属性名称...$form->load(Yii::$app->request->post(), '')){ return '接收参数失败'; } if($form->edit()){ return '保存完毕...return $form->firstError[0]; } } 如果表单定义了多场景,执行add或edit这些业务处理方法前(其实是validate被执行之前),一定要先设定scenario属性(属性值就是场景的标识...) 最终其实就是为了告诉validate要对哪些属性进行validate,而不是盲目地全部validate,毕竟不同场景下有不同的校验字段 深入应用 其实不能仅仅把场景理解为使用在validate控制上的

    45241

    Yii2 ActiveRecord 模型

    例如,['and', 'type=1',['or','id=1','id=2']]将会生成type=1 AND (id=1 OR id=2) between: 第一个操作数为字段名称,第二格和第三个操作数代表的是这个字段的取值范围...例如: ['between','id',1,10]将会生成id BETWEEN 1 AND 10 in: 第一操作数为字段名称或者数据库表达式。...例如:['in','id',[1,2,3]] 将生成id IN(1,2,3) like: 第一个操作数应为一个字段名或数据库表达式,第二个操作数可以是字符串或数组,代表第一个操作数需要模糊查询的值。...not exists:该操作数必须是代表子查询yii\db\Query的一个实例,会构建一个NOT EXISTS表达式。 \>或 字段的名称,第二个操作数则应该为一个值。...例如: ['>','age',10] 将会生成 age > 10 关联查询 场景:order表中的主键id 对应 order_log表中的 order_id,现在查询order表关联order_log中

    1.6K10

    yii2.0验证

    你可以指定以下的规则类型之一: 核心验证器的昵称,比如 required、in、date,等等。请参考 核心验证器章节查看完整的核心验证器列表。 模型类中的某个验证方法的名称,或者一个匿名方法。...; } else { echo $error; } Note: 不是所有的验证器都支持这种形式的验证。...($attribute, $params) 若某特性的验证失败了,该方法/函数应该调用 yii\base\Model::addError() 保存错误信息到模型内。...> 幕后的运作过程是这样的:yii\widgets\ActiveForm 会读取声明在模型类中的验证规则, 并生成那些支持支持客户端验证的验证器所需的 JavaScript 代码。...在这段 JavaScript 代码中,你可以使用以下预定义的变量: attribute:正在被验证的模型特性的名称。 value:进行验证的值。

    2.6K61

    yii2 modal弹窗之ActiveForm ajax表单异步验证

    前面我们讲述了yii2中如何使用modal以及yii2 gridview列表内更新操作如何使用modal的问题,本以为modal要告一段落可以开始新的话题了,但是实际问题往往超乎想像,这不modal弹窗提交的表单说是怎么验证的问题又出来了...yii2中,ActiveForm默认做了客户端验证,但是表单的提交,却不是无刷新的。也就是常常看到的表单提交后页面会刷新。...这往往不是我们想要的,此时就需要给validateUrl设置一个路由地址,其所要请求的操作的意义就在于异步做验证!...一般而言,上面的操作没有问题,但是总是会有特殊的人遇到特别的问题,问题突出,我们下面以一个案例进行说明: 有小伙伴遇到要验证的字段是unique类型,更新操作的时候,这可傻了眼了,怎么都处理不好了,我们下面给出一个针对字段...用下面的可能会好一点,万一你的字段也是unique的呢! 首先我们把ActiveForm的begin配置修改如下: $validationUrl = ['validate-form']; if (!

    1.5K21

    Yii使用技巧大汇总

    1 2 3 if(Yii::app()->user->hasFlash('submit')){ echo Yii::app()->user->getFlash('submit'); } 一般我们是跳转到列表页...有重复的名子'), CStatePersister是yii的核心组件,提供了基于文件的数据保存方式,可以不在同的请求中使用 COutputCache 即是一个组件,又是一个filter,前者的时候用于在...("id"=>$data->id));', ), 修改updateButtonUrl为编辑贴子 如何用gridview生成一个代搜索的管理列表 1、在Model的rules 设定可以搜索的属性 复制代码...复制代码 代码如下: Yii::app()->request->url; ctype_开始的几个函数,用于检查字任串是不是符合要求,代替了简单的正则表达式 CController中的setPageState...可以保存同一页中的POST的表单状态 如何通过BEhavior修改CActiveRecord?

    2.4K31

    yii2组件之下拉框带搜索功能的示例代码(yii-select2)

    ' => $data, 'options' => ['placeholder' => '请选择...'] ]); 但是如果你的表单是ActiveForm生成的,但是往往字段不是表字段怎么办呢?...更好办啦,以上面的为例,你只需要指定$model->title = ['title1', 'title2'];即可 基本上就是这么回事,我们也就很简单的实现了下拉选择并可搜索的功能。....'], ]); 多选的添加默认值同上 眼尖的注意到了,加了一个multiple选项。非ActiveForm生成的表单操作一致。 我们看看效果是怎么样的。...举一个例子,我们现在要查询某一个书名,但是我们的书的数据量大概有100W,很简单,这需要我们根据你的搜索结果异步获取下拉框里面的数据。未完待续,晚点做进一步说明。...来,上家伙,我们来看看如何使用异步搜索功能,工作中尤其是进行关联数据的时候其用途更是大大的,方便性嘛,看看就知道了,好用的不得了。

    1.1K20

    Yii2.0小部件GridView(两表联查搜索分页)功能的实现代码

    GridView 两表联查/搜索/分页 当我们在一个网格视图中显示活动数据的时候,你可能会遇到这种情况,就是显示关联表的列的值,为了使关联列能够排序,你需要连接关系表,以及添加排序规则到数据提供者的排序组件中...empty($_GET['InfoSearch'])){ $getSearch = Yii::$app->request->get(); //接收搜索字段 $data = $searchModel->search...第二个参数是两张表的关联关系 // 这里id是books_type表的id, 关联books_info表的type_id return $this->hasOne(BooksType::className...Model--->BooksInfo class InfoSearch extends BooksInfo { public $type_name; //定义属性变量 // 只有在 rules() 函数中声明的字段才可以搜索...book_name','type_name'], 'safe'], [['type_name'], 'safe'], ]; } public function scenarios() { // 旁路在父类中实现的

    69020

    Jmix 2.1 发布

    有关完整的详细信息和升级说明,请参阅文档中的最近更新[1]页面。 新的扩展组件 我们将一些之前在 Jmix v.1 中基于经典 UI 的扩展组件迁移了过来。...另一个新功能是可以在行内计算聚合值。需要配置聚合列时,请将 dataGrid 组件的 aggregatable 属性设置为 true,将 aggregation 元素添加到列中并选择聚合类型。...genericFilter 组件在运行时是完全可自定义的,并提供高级条件,但可能不是特别容易使用。而 propertyFilter 对用户来说很简单,但需要开发人员事先配置。...新的方法是,需要在下拉列表组件中定义 itemsQuery 嵌套标签,并编写类似下面的查询语句: id="departmentField" property="department...一旦你在方法体中开始输入字符,则会出现一个代码自动完成的下拉列表,其中显示了可用的 bean、UI 组件、局部变量和类字段。尚未注入到类中的 Bean 和 UI 组件将以斜体字显示。

    26010

    yii2开发中19条推荐实践

    bug,这需要你在一个yii2生命周期内持续的观察某些变量的值及赋值路径,具体配置可以参考我之前的课程, 用xdebug支持yii2调试之 - PhpStorm配置篇 当然,yii2自己的debug扩展也极其有用...模型的重要性 很多yii2的初学者喜欢将大量逻辑写到控制器的动作(action)中,这是不对的,我们的重点应该在模型中,而控制器仅仅是做输入输出。 我们拿关联举个例子,下面的这段代码是不好的。...让你的代码更加“简洁” 这里说的简洁并不是说代码量,而是表意。...有些代码需要一些判断,而判断的参考是某些值,比如下面的代码 if($this->type === 1){ return "文章"; }else if($this->type === 2){...对于他们的更新请使用yii2内置的TimestampBehavior行为类,则字段数据的填充我们就无需操心了,如下代码 namespace app\models; use Yii; use yii\behaviors

    3.3K70

    使用Bucket字段来快速分组你的报表记录

    in Activity reports 为下拉列表添加一层Bucket分组 1.在Source Column中,选择你希望添加bucket的字段。...重要:下拉列表的bucket名字必须包含至少一个字母或符号。如果一个下拉列表的bucket字段名称中只包含数字的话,这个bucket字段将不能保存。...4.为了快速查找下拉列表中的值,可以在快速查找框中输入下拉列表的首字母来查找相应的下拉列表值。 5.选择适当的值名将他们拖动到bucket中。...注意:你只能将激活的下拉列表值进行分组。没有激活的下拉列表值不会显示出来 6.将没有进入bucket分组的值移入到Other组中,此功能可通过启用显示非bucket值为“Other”。...下拉列表的bucket列子:Industry Types 1.创建或编辑一个标准的客户报表,确保在报表中会存在一些记录 2.在报表构建器的字段面板中,双击点击Bucket字段或将它拖动到报表设计面板中。

    1.7K20
    领券