在做 Create Rule
操作时
要求输入 Class Name
请问 这个 Class Name
是根据什么输入的?
这个 className
是规则类,规则类里必须实现方法 abstract public function execute($item, $params)
具体的逻辑来判定 $item
(角色或者权限)是否可执行。
在做 Create Rule
操作时
要求输入 Class Name
请问 这个 Class Name
是根据什么输入的?
这个 className
是规则类,规则类里必须实现方法 abstract public function execute($item, $params)
具体的逻辑来判定 $item
(角色或者权限)是否可执行。
public function behaviors(){
return [
'class' => TimestampBehavior::className(),
'createdAtAttribute' => 'cdate',// 自己根据数据库字段修改
'updatedAtAttribute' => 'mdate', // 自己根据数据库字段修改
'value' => date('Y-m-d H:i:s', time()),
];
}
这段代码,不知道错在那里。我放在model层 报错 Class cdate does not exist 怎么会这样昵。 数据库里字段没有错的。
求解?
还可以用beforeSave
因为你少一个[]
,
答案直接没了。。。。站长呢
虽然问题已解决,这里还是补充一下,
出现同样问题的可以试试以下方法:
楼主的代码除了少了一个[]括号外,
[[‘duration’,’begintime’, ‘cdate’, ‘mdate’], ‘required’]这个里面的’cdate’, ‘mdate’两个attributes可能需要删掉。
原因:
required 是在 timestampbehavior 之前执行。
required验证器执行时 timestampbehavior 还没来得及填写数据,如果此时’cdate’, ‘mdate’属性未填数据的话,required验证器会报错。结合app的错误日志,可以看看是不是required validate的问题
yii2 fields返回关联数据,能否根据不同的场景,使得model携带不同的数据返回?
例如:
public function fields(){
$fields = parent::fields();
if($this->scenario == self::SCENARIO_INDEX){
array_push($fields,'lectures');
}else{
array_push($fields,'lectures','course');
}
return $fields;
}
但是现在问题在于,关联数据,比如lectures,如何进一步指定呢?
有的 利用 toArray($fields, $expand, $recursive )
的 $expand
, 跟model的 extraFields method
Model 部分
Controller 部分
這方法可以第一眼在 controller 的 action 知道會回傳內容甚麼值
這樣也可以 分 原table屬性以及新加的屬性
這樣是你要的?
如果是 從資料表撈出大筆數據, 昨天發現一個方法你也可以參考看看selecting-extra-fields
http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#selecting-extra-fields
D:\phpStudy\WWW\yii\shop>php ../composer.phar require warrence/yii2-kartikgii "d
ev-master"
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- yiisoft/yii2-jui 2.0.5 requires bower-asset/jquery-ui 1.11.*@stable -> no
matching package found.
- yiisoft/yii2-jui 2.0.4 requires bower-asset/jquery-ui 1.11.*@stable -> no
matching package found.
- yiisoft/yii2-jui 2.0.3 requires bower-asset/jquery-ui 1.11.*@stable -> no
matching package found.
- yiisoft/yii2-jui 2.0.2 requires bower-asset/jquery-ui 1.11.*@stable -> no
matching package found.
- yiisoft/yii2-jui 2.0.1 requires bower-asset/jquery-ui 1.11.*@stable -> no
matching package found.
- yiisoft/yii2-jui 2.0.0 requires bower-asset/jquery-ui 1.11.*@stable -> no
matching package found.
- warrence/yii2-kartikgii dev-master requires kartik-v/yii2-icons * -> satis
fiable by kartik-v/yii2-icons[v1.0.0, v1.1.0, v1.2.0, v1.3.0, v1.4.0, v1.4.1].
- kartik-v/yii2-icons v1.0.0 requires yiisoft/yii2-jui * -> satisfiable by y
iisoft/yii2-jui[2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5].
- kartik-v/yii2-icons v1.1.0 requires yiisoft/yii2-jui * -> satisfiable by y
iisoft/yii2-jui[2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5].
- kartik-v/yii2-icons v1.2.0 requires yiisoft/yii2-jui * -> satisfiable by y
iisoft/yii2-jui[2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5].
- kartik-v/yii2-icons v1.3.0 requires yiisoft/yii2-jui * -> satisfiable by y
iisoft/yii2-jui[2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5].
- kartik-v/yii2-icons v1.4.0 requires yiisoft/yii2-jui * -> satisfiable by y
iisoft/yii2-jui[2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5].
- kartik-v/yii2-icons v1.4.1 requires yiisoft/yii2-jui * -> satisfiable by y
iisoft/yii2-jui[2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5].
- Installation request for warrence/yii2-kartikgii dev-master -> satisfiable
by warrence/yii2-kartikgii[dev-master].
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your min
imum-stability setting
see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more det
ails.
Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further commo
n problems.
Installation failed, reverting ./composer.json to its original content.
今天我更新的时候也出现同样的问题,修改 require
部分如下,解决问题。
看英文解释我也知道是没有加载mysqli.d这个鸟东西 在这个路径下也的确是没有这个东西 然后找mysqli.d这个关键字谷歌 根本没有解决问题问题的信息。。
不知道从何下手。
最重要的问题就是 只是线上偶尔刷新会出现这个警告 对程序没有任何影响。。。 并且本地不会出现这个问题
上面不是写了吗?php核心错误,重安装php吧。
ps:这个问题主要和csrf这里有关,关闭了某些不必要的可以解决。根本解决的话就是从新安装php环境及yii可以解决,问题出在哪里还没有搞清楚。
重搭web环境吧
标题写的很清楚了,不是csrf的问题,图片总量不太大,就能上传成功,但是只要图片大一些,就出现数据无法被验证。求大神解答
php的post_max_size
表单数据最大默认是8M,upload_max_filesize
最大默认是2M,
是这方面没设置好么?你图片最大的时候是多大
ajax异步上传图片
最好是使用php_ini来设置这些属性,不然部署一次环境就要修改一下环境,容易出错。
谁有yii2.0使用curl和curl扩展的案例?
一个请求的完整类 项目里面一直在用
class HttpRequest {
// echo $query;exit;
// var_dump($data);exit;
// $headers = $this -> headers;
// while (!feof($httpreq))
// {
// $rsp .=@fgets($httpreq,4096);
// }
// print_r($rsp);exit;
// $this -> status = array_shift($headers);
}
这个你按照原生的不就好了吗 –
用不着扩展,直接写个类加namespace。使用时use过来即可。
不是说了吗不用做成扩展,直接开个类,建俩方法,一个get一个post,把对应的curl语句放进去
GuzzleHttp
if ($user->save()) {
return true;
}
返回值为1
但是 实际并没有修改成功!
我该从哪里着手去调查这个问题呢?
print_r($model->errors)
,打印,看看有什么错误提示
有可能影响的记录为0,if里面改成$user->save()>0试试
http://www.yiichina.com/question/616 移步把
你 user 的验证规则有没有问题? $user->save(false);
这个试一试
从头理,一步一步找问题。save方法在为新纪录时insert在不是新纪录时update
返回1就代表已经成功。
检查是否是更新对了地方…
求告知怎么用的。刚用了yii自带的验证码。然后人家说现在用极验。去搜了搜注册了下载了,然而不会用啊。求助
重要的就三个文件:
第一个是类库里的Geetestlib.php,这个需要加个命名空间。
第二个是类库里的StartCaptchaServlet.php用于预处理。(拿出代码改吧改吧放控制器预处理部分去)
第三个就是类库里的VerifyLoginServlet.php用于验证。(拿出代码改吧改吧放表单处理部分去)
最简单的4步使用方法就是
1,控制器里use第一个类库;
2,动作里预处理前端ajax请求;
3,在表单提交到的动作里处理验证;
4,把gt.js注册进表单视图里(一定要放在jquery后面),并做好ajax部分的。
有时间把它写成一个扩展。
写成扩展了吗
如图
终于找到解决方案了… 谷歌帮了忙… config/main.php 加上