1.关于场景(scenarios)这个问题,开始搜了很多文章,看了其实有点容易被误导,所以我推荐可以的话可以看一看源码。
2.直接先给结论:
在大多数情况下,是不需要重写 scenarios() 的。通过配置 rules() 来改变 scenarios() 的返回值,而不是直接手动覆盖 sceanrios().覆盖带来的一个明显的弊端是:你的精力被分散到了两个方法内(rules() 和 scenarios()).
3.推荐文章如下:
yiichina.com/question/3042?sort=desc
4.你可以把scenarios源码复制到子类当中进行修改观看这个scenarios()是怎么工作的。
step1.这是我的rules()函数:
public function rules()
{
return [
[['user_id', 'create_time'], 'integer'],
[['content', 'picture_url'], 'string', 'max' => 128],
[['user_id'], 'exist', 'skipOnError