ThinkPHP3.1版的Action参数绑定功能提供了URL变量和操作方法的参数绑定支持,这一功能可以使得你的操作方法定义和参数获取更加清晰,也便于跨模块调用操作方法。这一新特性对以往的操作方法使用没有任何影响,你也可以用新的方式来改造以往的操作方法定义。
Action参数绑定的原理是把URL中的参数(不包括分组、模块和操作地址)和控制器的操作方法中的参数进行绑定。例如,我们给Blog模块定义了两个操作方法read和archive方法,由于read操作需要指定一个id参数,archive方法需要指定年份(year)和月份(month)两个参数。
ThinkPHP3.1的命名范围功能,给模型操作提供了一系列的(连贯操作)封装,让你更方便的查询和操作数据。下面我们就来具体了解下这一用法。
1.定义属性
要使用命名范围功能,主要涉及到模型类的_scope属性定义和scope连贯操作方法的使用。
我们首先定义_scope属性:
class NewsModel extends Model {
protected $_scope = array(
// 命名范围normal
'normal'=>array(
'where'=>array('status'=>1),
),
ThinkPHP3.0版本的Widget对Action和View的支持力度是相对不够的,仅能够实现基本的模板渲染输出。而3.1版本的发布带来的多层MVC功能,给我们实现Widget的方式带来了新的思路,且看是如何实现吧。
由于ThinkPHP3.1增加了对多层MVC的支持,因此3.1版本可以支持多层的控制器功能,由此我们就可以在控制器层再增加一层:Widget层。
首先,还是在项目的Lib目录下面创建一个Widget目录,并且创建一个TestWidget类(Lib/Widget/TestWidget.class.php)如下:
申请淘宝金牌卖家的标准是:保持六个月每月销售额达6万以上,且有消保,7天无理由退货。就可以申请金牌卖家,排名会靠前还有一个标记。
经历了近一个月淘宝试运营期的累积,淘宝金牌卖家终于正式上线了。2014只为让更多成交好、服务好、口碑好的三好卖家被买家所发现,能够为买家提供更多、更好、更优质的服务。那么,金牌卖家的正式上线,好处有哪些?
在金牌卖家正式运营期间,主要有新增卖家权益、准入规则、新增类目、进出机制四大块内容。
(一)卖家权益
ThinkPHP的Widget扩展用于根据页面需要输出不同内容,它在项目目录中的Lib/Widget下定义。
具体定义如下:
class NewsListWidget extends Widget{
public function render($data){
// code...
}
}以往在ThinkPHP3.1版本之前,如果需要设置自动验证或者自动完成,一般来说必须定义在模型中,或者通过setProperty方法动态设置属性来完成,这样做的缺点是不太方便动态改变和调整。
ThinkPHP3.1版本在模型类中增加auto和validate两个连贯操作,用于动态设置自动完成和自动验证规则,现在可以在Action中使用:
$validate = array(
array('verify','require','验证码必须!'),
array('name','','帐号名称已经存在!',0,'unique',1),
);
$auto = array (
ThinkPHP3.1版增加了表单提交的字段合法性检测,可以更好的保护数据的安全性。这一特性是3.1安全特性中的一个重要部分。
表单字段合法性检测需要使用create方法创建数据对象的时候才能生效,具体有两种方式:
一、属性定义
可以给模型配置insertFields 和 updateFields属性用于新增和编辑表单设置,使用create方法创建数据对象的时候,不在定义范围内的属性将直接丢弃,避免表单提交非法数据。
insertFields 和 updateFields属性的设置采用字符串(逗号分割多个字段)或者数组的方式,例如:
以往的ThinkPHP3.0版本对数组方式的查询条件会进行安全过滤(这是由于3.0强制使用了字段类型检测,所以数组方式的查询条件会强制转换为字段的设定类型),但是3.0版本并不支持字符串条件的安全过滤。而ThinkPHP3.1版本则增加了对条件字符串进行预处理的支持,让ORM的安全性更加得以保证。
一、使用where方法
Model类的where方法支持字符串条件预处理,使用方式:$Model->where("id=%d and username='%s' and
xx='%f'",array($id,$username,$xx))->select(长期以来ThinkPHP都是需要通过debug_start、debug_end方法甚至Debug类才能完成那些调试的功能,而在ThinkPHP3.1版本中,这些复杂的功能被一个简单的G方法取代了,这不可不谓是一次华丽升级。
G方法的作用包括标记位置和区间统计两个功能,下面来看下具体用法:
1.标记位置
G方法的第一个用法就是标记位置,例如:
G('begin');表示把当前位置标记为begin标签,并且记录当前位置的执行时间,如果环境支持的话,还能记录内存占用情况。可以在任何位置调用G方法标
很多人都会想,新手卖家没什么资金,如果能够拿到较低的进货价,不是挺好的吗,但是,一般这种一手货源都会要求一定数量的进货。那么,作为新手而言,刚开店, 店铺的销量,信誉都是最低的,在这种情况下,就有库存压仓的问题,资金周转不灵是对小卖家的致命打击。如果是经营一些成熟的产品,新手卖家也是处于一个劣势,资金太集中于一个产品。卖家会非常的被动。
前期宝贝种类多,也是一种优势。所以,前期的话,可以采取多品类的模式经营网店,品类的数目不能过度,适中就好。刚开始进货,不急着找一手货源。大的批发商相对更合适一点。批发商一般都是允许小批量进货的,而且批发商相对产品比较丰富。这样你可以花不多的钱,进到很多品类的宝贝。
这里提个小窍门,在选择批发商的