如题,现在的问题是返回页面,其他的下拉框,输入框都是之前的内容,就div变成了第一个,
请问如何选中的是之前已经选中的div?
如果都是非隐藏的input,确实是可以保留你提交时候的数据,但是你那个div实际提交的是隐藏input,所以肯定是不会保留的。
根据你这个请求失败要保留原来信息的这个需求,强烈建议用AJAX去解决,用户体验也很好。
不明白你是什么类型的输入。
如果浏览器不支持返回,可以提交前把数据存本地,有返回上一页时通过js初始化
如题,现在的问题是返回页面,其他的下拉框,输入框都是之前的内容,就div变成了第一个,
请问如何选中的是之前已经选中的div?
如果都是非隐藏的input,确实是可以保留你提交时候的数据,但是你那个div实际提交的是隐藏input,所以肯定是不会保留的。
根据你这个请求失败要保留原来信息的这个需求,强烈建议用AJAX去解决,用户体验也很好。
不明白你是什么类型的输入。
如果浏览器不支持返回,可以提交前把数据存本地,有返回上一页时通过js初始化
例如:
public function rules() {
return [
['email','email','on'=>['create','update']],
['email','safe']
]
}
这么写,那么字段 email 是所有场景都不验证呢还是说在 只有在 create、update 的场景下才会验证。
safe验证器和其他验证器比如email,url是一个级别的,没有任何特殊之处的。如果非要说特别之处,那就是如果在相同场景下对相同的属性声明一次email规则和safe规则,那么生效的会是email。
所以说真正决定在一个场景中一个验证器是否生效的是当前场景是否包含了该验证器所验证的属性以及该验证器的属性是否指定了生效场景。
有如下几种主要情况及对应结果
1。一个场景没有声明任何验证属性,仅仅是个空数组,但rules()却有无穷无尽的验证规则。 结果:使用该场景的model调用validate()不会进行任何的验证。
2。一个场景声明了一些属性,一些属性没有声明应用场景。 结果:该场景所包含的属性如果在这些没有声明场景的属性里,则依旧会被得到验证。 所以没有声明场景的属性会得到所有声明该属性的场景的关爱。
3。一些属性指定了应用场景,但不是该场景的另外一个场景也声明了这个属性。 结果:后者的场景无法进行验证,毕竟他的所爱已经心有所属。
所以说楼主的email的safe 会被所有声明email属性的场景使用。但由于之前提到的email的权重比safe大。所以create和update场景呈现出来的是对email属性进行了email验证器的验证。
Yii 的官方解释如上,简单点讲:字段 email 在create、update场景下会验证,在除这个场景以外的其他任意场景都是safe(即不做验证)的,希望可以帮到你
自带的查询似乎都得添加到safe里面,难道也是经过model避免rule验证?
上面的就是说 在 create,update 的时候 验证 email 字段
因为公司要测试数据,所以需要有大量数据.但是个人能力不足,希望大神给予帮助
批量插入数据,还是已经有数据了,直接导入?
用PHP写,循环10次,每次插入1000条。然后具体的数据,每个字段采用随机字符串生成。这样应该可以。我只是给你一个思路~
php可以写一个小方法 把sql语句拼到一起 然后拿出来执行
如何将默认语言设为中文,尝试将 'language'=>'zh-CN',
放到config/web.php
中,但是不起作用,有没有大神有解决办法,望:尽量详细!
详细阅读yii文档,http://www.yiichina.com/doc/guide/2.0/tutorial-i18n
在这一部分。或者看着个
http://www.ybsat.com/index.php/404
如果还有问题,请回复
和i18n有关系。没翻译的消息内容设置为中文也没得翻译啊。遇到这情况要么给自己扩展让它支持18n,要么就跑到视图里一个一个改。
2.08的注销按钮代码
$menuItems[] = '<li>'
. Html::beginForm(['/site/logout'], 'post')
. Html::submitButton(
'Logout (' . Yii::$app->user->identity->username . ')',
['class' => 'btn btn-link']
)
. Html::endForm()
. '</li>';
之前的版本是这样的
$menuItems[] = [
'label' => '注销 (' . Yii::$app->user->identity->username . ')',
'url' => ['/site/logout'],
'linkOptions' => ['data-method' => 'post']
];
这个改动是不是更安全??
但是导航显示出现了问题
(yiichina的图片上传是不是不对啊,弄不上去)
没区别啊,效果一样的。都是post方式注销的,防止低端的csrf攻击。
CSRF 是跨站请求伪造的缩写。这个攻击思想源自许多应用程序假设来自用户的浏览器请求是由用户自己产生的,而事实并非如此。
比如说:an.example.com 站点有一个 /logout URL
,当以 GET 请求访问时,登出用户。如果它是由用户自己操作的,那么一切都没有问题。但是,有一天坏人在一个用户经常访问的论坛发了一个 <img src="https://www.yiichina.com/docs/guide/2.0/http://an.example.com/logout">
内容的帖子。浏览器无法辨别请求一个图片还是一个页面,所以,当用户打开含有上述标签的页面时,他将会从 an.example.com
登出。
上面就是最原始的思想。有人可能会说,登出用户也不是什么严重问题,然而,我们发送一些 POST 数据其实也不是很麻烦的事情。
为了避免 CSRF 攻击,你总是需要:
遵循 HTTP 准则,比如 GET 不应该改变应用的状态。
保证 Yii CSRF 保护开启。
上传图片正常了,原来目录的权限不对。
yii2中进行多个数据库时,怎么区分是那个数据库??
方法很多
1,ar的话,直接可以getDb()方法,设置使用的数据库。
2,组件形式,使用createCommand查询时候设置Yii::$app->db1 Yii::$app->db2…也可以直接实例化一个yii\db\connection类;
3,使用db\query的话,直接写数据库名,如robbins.username之类的。
4,还可以使用Yii::$app->createObject()传入配置实例话一个对象
等等。。。。
直接绑定数据库
<?= $form->field($model, 'finish')->dropDownList(['0'=>'未完成', '1'=>'已完成'], ['style'=>'width:200px']) ?>
怎么通过disabled禁止‘已完成’选项,参考过类文件了,看的不太懂,试了多次都没出来。
注册个js,内容是找到对应的option,加个disabled不就得了?$this->registerJs("$('option[value=\"1\"]').attr('disabled','');");
最近在学习yii框架,但是场景和规则这个地方有点弄混了,如图
如图,在规则rules中设定字段a和字段b,当场景为update的时候触发,但是在设置场景update的时候我选择了字段a和b以及c,那么在程序中当时执行场景update的时候,字段c会做校验码?
校验。你设置这个意思是只有update场景时候,才去校验你第二条规则,其他场景只校验第一条
您的答案 C 是會驗證的 , 欄位跟場景是不同的
下面舉些例子看看差別
首先預設參數
單驗證欄位
1.
加入場景 scenario_a , scenario_b
1.
1-1.
指定驗證欄位
2.
2-1
2-2
2-3
‘on’就是在它指定的场景下使用。可以考虑这样:
如题:在rules里用了这个规则报错 Class numerical does not exist
['num','numerical','min'=>1,'max'=>100,'integerOnly'=>true],
我想num 是个1-100的数字。如何做?求解。
number,没你那个什么numerical。。。['num', 'integer', 'min'=>1, 'max'=>100]
我是想判断表是否存在,然后添加表
但提示 Call to a member function createCommand() on a non-object
请问要怎么处理?
<?php
namespace frontend\controllers;
use yii\web\Controller;
use yii\db\Migration;
use yii\db\Schema;
class TableController extends Controller
{
public function actionIndex()
{
$mir = new Migration();
$sch = new \yii\db\mysql\Schema;
$tableName='shang';
$table=$db->createCommand("SHOW TABLES LIKE '".$tableName."'")->queryAll();
if($table==null) {
echo '1';
}else{
echo '2';
}
// $mir->createTable('shang', [
// 'id' => 'pk',
// 'title' => $sch::TYPE_STRING . ' NOT NULL',
// 'content' => $sch::TYPE_TEXT,
// ]);
}
}
判断表是否存在有好多种方法,如:
判断表字段是否存在:
可以用migration里面的方法: