在 Web 和移动开发世界中,当我们想要显示大小不相同的项目网格时,瀑布流布局很有用。一个轴使用严格的网格布局,通常是列。在另一个轴上,项目具有不同的高度,但可以灵活排列以填满可用空间。...使用瀑布流布局的一个著名例子是 Pinterest。他们为他们的网站和移动应用程序实现了这种布局,以显示不同大小的图像。...本文将向您通过使用名为MasonryGridView提供一个流行的包fluter_staggered_grid_view。 应用预览 i 我们要构建的应用程序包含一个 3 列的瀑布流布局。...: 代码 通过运行安装插件: flutter pub add flutter_staggered_grid_view 然后执行这个命令: flutter pub get main.dart 中的完整源代码及说明...在您想要构建漂亮且专业的用户界面的许多情况下,这些知识可能会有所帮助。
写api接口时一般会在控制器中简单验证参数的正确性。 使用yii只带验证器(因为比较熟悉)实现有两种方式(效果都不佳)。 针对每个请求单独写个Model , 定义验证规则并进行验证。...使用独立验证器 中提到的$validator- validateValue() 方法直接验证变量值。缺点:写实例化很多验证器对象。...有么有“一劳永逸”的做法,像在Model 中通过rules 方法定义验证规则并实现快速验证的呢?有!...从验证规则中获取可赋值的属性。 使用参数验证模型 进行验证和存储验证错误消息。 使用魔术方法获取参数验证模型 中的验证错误消息。 <?
有一位粉丝问私信问我的面试题,他说“什么是服务网格”? 服务网格这个概念出来很久了,从 2017 年被提出来,到 2018 年正式爆发,很多云厂商和互联网企业都在纷纷向服务网格靠拢。...Service Mesh,我们通常把他称为第三代微服务架构,既然是第三代,那么意味着他是在原来的微服务架构下做的升级。...所以,在第一代微服务架构中,每个微服务除了要实现业务逻辑以外,还需要解决上下游寻址、通讯、以及容错等问题。...在第二代微服务架构中,负责业务开发的小伙伴不仅仅需要关注业务逻辑,还需要花大量精力去处理微服务中的一些基础性配置工作,虽然 Spring Cloud 已经尽可能去完成了这些事情,但对于开发人员来说,学习...之所以我们称 Service Mesh 为服务网格,是因为在大规模微服务架构中,每个服务的通信都是由 SideCar 来代理的,各个服务之间的通信拓扑图,看起来就像一个网格形状。
开发中 本段为你介绍我在yii2开发中一些习惯和小技巧,希望对你有用。...复用随时要想到(小挂件) 编码的原则是尽最大努力让代码复用,尤其是小挂件,它让视图层实现了复用,小挂件的使用非常简单 1、在@app下建立一个文件夹components 2、在components内建立一个挂件类...(必须继承yii\base\Widget) 3、渲染一个小挂件的视图(如果需要,在components/views下) 4、使用它 没看明白?...为视图的PHP代码增加一个try 在写action或模型方法的时候,为了保证代码的稳定性,我们一般都会用try....catch语法结构,但是在yii2的视图内很少有人用,记住,也要用!...另外在做迁移脚本的时候,如果你的表有前缀,那么在脚本里的写法如下 {{%user}}// discuz_user 时间问题 使用yii2开发mysql类web应用的时候,数据表的时间类字段我们喜欢用时间戳
Yii2.0使用一年多了,最近因为原来公司狗带了,换了公司,开始使用tp5.0。之前也有使用过tp3.2的框架,但是每次问及各个框架之前的区别的时候,总是不觉得有什么区别。...但是从目前对tp5一周的使用时间来看,tp5相对于yii2来说,确实是弱爆了。 1、Yii2所有的操作都是对象操作。所有的对象都继承Yii中的Object对象。TP中,有对象也有函数。...TP中的各个对象没有明显的继承关系。各自为类,定义不同的属性以及方法。 2、Yii2架构组织明确,同一类的对象必定有一个父类,在父类中定义相同的方法。...在TP5中,普通控制器提供一个tink\Controller对象,同时,框架也允许在应用中的控制器可以不继承think\Controller。...,所以,更新的时候是能获取数据表内所有字段信息。
过滤器位置.png 定义过滤器 在Yii2中,自定义过滤器,需要继承 yii\base\ActionFilter 类并覆盖 yii\base\ActionFilter::beforeAction() 和...创建模型.png 创建控制器,实例化表单模型和渲染视图 ? 创建控制器.png 视图中使用ActiveForm创建表单元素 ? 创建元素表单.png 在控制器中接收表单数据并绑定数据到表单模型 ?...在视图中使用验证码 ?...,在Yii2中,不需要自己去写验证,直接在表单模型的 rules 中调用 captcha 验证就可以了 ['verifyCode','captcha'], 数据分页 Yii2也提供了类似于TP的数据分页类...在视图中要显示分页,要使用到LinkPager 小部件 使用方法: <?
每一个Model Class其实很多时候都是跟一些更加核心的类(比如Active Record)配合着使用,而在Yii2中,Active Record的增强也让我很惊喜,后续我打算再写一遍文章来专门介绍...定义的 视图(Views) 在Yii2的Views中也有一些小小的变化,最明显的变化莫过于render()函数了,现在它会返回一个值,而不是像Yii1.1的那样输出(output)值,比如: public...在Views还有一个值得注意的地方就是this变量,在Yii1.1中,this可以说就是链接Controller和Views的中介;而在Yii2中, 控制器(Controllers) 首先直接来看一下代码...没错,Yii2中已充分开始使用PHP命名空间,当初在Yii1.1的时候一直听说Yii2会使用更高级的PHP特性来完全重写,果然啊,点个赞。...写在最后 正如你在这篇文章看到的一样,在Yii2中几乎所有的MVC组件变化都使得Yii2更好用了,我相信这会带给开发者更好的的开发体验,毕竟Yii2 中看到了一丝丝优雅的样子!
使用Yii2的时候,在某些场景和环境下需要获得Yii2目前所处于的module(模型)、Controller(控制器)、Action(方法),以及会调用控制器里面已经定义过的一些公共的方法等.对于这些问题...Yii2可以在视图层View中使用$this->context这个对象去获得。...使用Yii2的时候,在某些场景和环境下需要获得Yii2目前所处于的module(模型)、Controller(控制器)、Action(方法),以及会调用控制器里面已经定义过的一些公共的方法等.对于这些问题...Yii2可以在视图层View中使用$this->context这个对象去获得。...示例:譬如现在(视图层登陆界面)login.php方法下面: <?
/columns_3.php'; return $this->render('index'); } 在布局中可以定义多个点位符变量,然后在各个子布局中指定所使用的内容。...中使用$layout控制布局文件 yii2与yii在选择布局文件上有一点比较大的不同,yii是既可以在/protected/views/layout/main.php设置布局文件,也可以使用下面语句设置...,但yii2中我没有找到相关的设置文件,只能使用下面方法对布局文件进行设置了,不过下面的方法非常方便,使用起来非常好用。..."main"; //设置使用的布局文件 方案2:控制器成员方法内 $this->layout = false; //不使用布局...= false; //不使用布局 $this->context->layout = 'main'; //设置使用的布局文件 下图是在控制器中调用了一个
yii的默认方法是index,可以在vender/yiisoft/yii2/base/Controller.php 中进行初始设置,也可以在控制器中改写defaltAction='action'。...5.布局模式 yii会默认开启布局模式,其布局模板为view中的layout中的main.php,我们可以在veder/yiisoft/yii2/web/controller.php基础类中public...使用时应用基命名空间,use yii\helpers\XXX,然后用类来引用基静态方法XXX::YYY() 12.关联模型 yii里面的关联模型,用来在取得当前表内的一条记录时,会取出对应表的记录。...13.使用ActiveForm创建表单 yii2中使用小部件创建view视图的步骤: 设置一个Model设置其属性 public $username; public $password; 设置其rule...3.在JS中使用YII的变量 若想在JS中使用YII的URL变量等,可以使用html中的script标签,将变量在第一次渲染视图时预先解析出来,将下面代码放在需要使用变量的地方之前。
首先我们介绍一下Controller类的render()方法的执行流程,需要查看vendor\yiisoft\yii2\base\Contorller.php文件中的render()方法源代码。...开始应用级布局 在一个应用中多个控制器使用一个布局文件,那么可以在应用级配置文件config/web.php中设置yii/base/Application的$layout属性,代码如下: $config...> 嵌套布局实现页面渲染流程: 首先渲染视图文件article.php的内容,存储到布局文件reght.php的$content中。...,在Module类中定义了getViewPath()和setViewPath()方法,来获取和设置视图文件路径,代码如下所示: //所在文件路径vendor\yiisoft\yii2\base\Application.php...中并没有设施成员属性viewPath,但是使用viewPath成员属性时将自动调用_get()魔术方法间接调用getViewPath(),同理在设置viewPath成员属性时将自动调用_get()魔术方法间接调用
yii2目前还处于beta版本,相关文档也一直在变化,如有疏漏,还请及时反馈 Yii2安装 两种安装方式,composer或者下载zip包 使用composer安装初始化yii2项目(推荐)...composer官方地址 源码安装 源码包地址 yii2-beta 下载源码包解压后即yii2的框架源文件,然后根据自己的实际情况构建目录结构,进行开发 项目初始化完成以后,配置yii2的配置文件...,配置文件一般放在app/config目录下,当然这个路径会根据个人习惯而不同] 我个人推荐的yii2框架目录结构(使用composer 创建项目的默认目录结构和此不同) composer.json...定义项目中的composer依赖包,内容格式可使用composer init生成 vendor/ 第三方包依赖目录,包括yii2框架 web/ nginx...config/ 应用程序配置 controllers/ web controller目录(控制器) views/ 应用views目录(视图
PHP框架大PK php框架有很多种,在国内应用较多的有:Thinkphp, Yii, Laravel, Codeigniter等。关于这些框架,孰优孰劣,是一个极具争议性的话题。...如果你对yii2不感兴趣,更希望你能抽空了解下,给yii2一个机会,让她展现魅力,我相信,不喜欢用yii2的人,绝大部分是使用的姿势不对。好比普通人拿屠龙宝刀,只能用于切西瓜,还嫌其笨重。...yii2使用composer安装失败的原因 ? 我也很绝望啊 于是,我放弃挣扎了,直接下载文档包 归档文件下载地址 ?...location ~* /\. { deny all; } } 注意:将/path/to/yii-application/修改为你的本地项目路径; 在项目根目录新建...小结 本小节讲了如何安装配置yii2。下节将讲解yii2的控制器和视图是如何交互数据的。敬请关注...
当服务器端进行了存储后要生成一个key,将其返给小程序,以后小程序凡是发起需要用户认证的请求,都带这个key用来判断用户身份,在yii2中,这个key就是我们restful中的access_token。...服务器端 接下来总结下服务器端,我使用yii2的restful组件作为接口支持,关于restful的基本功能请参考yii2官方文档或我之前录制的课程《Yii2的RESTful讲解》,在这里分享我认为关键的点...让yii2能解析json的请求内容 默认情况下yii2并不能识别请求中的json格式,而我们小程序在发起请求时喜欢用它,因此我们要对yii2进行一下配置。...在yii2的restful中的用户认证使用了行为机制,我们来看下流程代码 // 在需要授权的控制器内 class CardController extends ActiveController {...header内包含如下代码 header: { 'Authorization': 'Bearer ' + access_token }, 当服务器验证通过后,在action的代码内直接使用 Yii::
Yii::t() 方法可以像这样使用,如下所示: // 代码片段中,'app' 代表文本消息的类别 echo \Yii::t('app', 'This is a message to translate...“*”表示所有消息开始程式类别必须使用这种特殊的消息源进行翻译(转换)。...视图文件翻译 测试 可以翻译整个视图脚本,而不是单独的翻译文本消息。...然后,zh-CN 文件夹中创建一个 index.php 文件并使用下面的代码。 yii2/yii_localization.html (完)
我们返回头再整体回顾下 YII2 框架,你会发现在 YII2 官方的默认模版中,View 层还是占有很大的比重。...在 YII2 社区中安装 YII2 版本的讨论中,经常有一个 View asset 扩展安装的难题,核心就是前端页面元素与后端服务的耦合的问题,以及版本依赖的冲突。...API 简单概括 “现在我们使用 YII2,就是在使用它构建 API 的能力。...看一看 YII2 官方文档[2] 列出来的 YII2 关键组成,基本上很多已经退出常见的使用场景。 找到了一个介绍 YII2 微框架,为服务接口而设计的 使用 Yii 作为微框架[3], ?...在应用程序开发中,前端这个职位是从后端细化和演变而来的,前后端分离和独立就是技术的趋势。 首先技术层面的技术选择和生态,其次职位的前端工程师和后端工程师区分,在者部门的设立原则前端部门和后端部门。
想要在Yii2这个PHP框架中很好的使用redis键值存储,那么首先就要推荐yii2-redis这个官方的Github库。...这个库能够很好的帮助我们在Yii2框架中使用redis,它提供缓存,Session以及ActiveRecord模式的支持。...-redis:"~2.0.0" 或者将 "yiisoft/yii2-redis": "~2.0.0" 加入你的composer.json文件里,之后运行composer update,墙内真的很慢,耐心等待即可...配置redis 要正确的使用这个扩展,你必须在你的应用程序的配置文件内,配置Connection类,一般来说,配置文件是config\web.php。...localhost', 'port' => 6379, 'database' => 0, ], ] ]; 如此之后,你便能正常的在yii2
项目代码开源后在网上爆火,英伟达AI科学家Jim Fan甚至大胆预测: 2023年会是3D模型爆发年,可以期待一波3D版Stable Diffusion和MidJourney了。...在文本生成3D点云上,Point·E并非“一步到位”,而是将过程分为了三步。 首先,如红色框展示的,模型会先基于文本生成一个“预览版视图”。...具体的训练过程,用了一个包含数百万个3D模型的数据集,其中每个模型都被处理成渲染视图、文本描述和3D点云三部分。 用这种方法生成的3D点云模型,在处理速度上确实快了不少。...相比之下,Point·E的几个不同大小的模型,基本都以分钟为单位,在1分钟~1.5分钟内就能完成文本生成3D点云模型。...在经过渲染前,这些点云需要先完成预处理,经历一个网格化的过程,往往这个过程还需要耗费额外的时间: 作者也指出了Point·E存在的一些缺点。
我们的数据库常常都是很庞大的,一次查询的结果集也很大,这样很浪费内存,为了降低内存的使用率,我们可以使用yii2的batch和each方法。...为了让大家看的更明白,我们模拟一个场景,然后通过yii2的debug来查看all与batch/each方法下的内存使用情况。 开始准备 我们先建立一张表,它很简单。 ?...对比 为了方便,我们在视图里直接写循环体,如下面代码,你一定可以看懂。...结果 当我们遇到需要一次读取出所有的或是大批量数据的时候,可以考虑使用batch和each,这一点点代码的优化帮你省掉了一半的内存。
\yii\widgets\ActiveForm类提供了Bootstrap3的表单域,但在Yii2默认表单控件中,它的样式就没有那么美观了,那我们怎么在不修改其表单方法下,修改表单的样式呢?...我们可以在ActiveForm::begin中给他一个模板参数“template”,就可以直接修改了表单样式。 ", 'labelOptions' => ['class' => 'col-lg-1 control-label'], ] ]); 这是基于Bootstrap3的网格系统设置的表单样式...具体样式请参考Bootstrap3手册,或者可以自己设置样式哦~~~ {label}:label标签 {input}:表单域,可能是文本域、下拉框 {error}:错误提示信息 表单使用方法
领取专属 10元无门槛券
手把手带您无忧上云