我知道你可以使用内联验证器验证单个属性,例如:
['country', 'validateCountry']
public function validateCountry($attribute, $params)
{
if (!in_array($this->$attribute, ['USA', 'Web'])) {
$this->addError($attribute, 'The country must be either "USA" or "Web".');
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我如何将多个属性传递给验证器?...或者我应该$this在验证器中引用它们吗?
我的方法中有一堆验证规则rules,所有错误似乎都有效,但是这个有问题:
['username', 'match', 'pattern' => '/[a-zA-Z0-9_-]+/', 'message' => 'Your username can only contain alphanumeric characters, underscores and dashes.'],
Run Code Online (Sandbox Code Playgroud)
它验证,这是不正确的行为.
我在这里做错了吗?
我正在使用Yii 2并且即将首次开始使用数据库,并且想知道是否Yii 2还应该使用其他东西来为数据库准备数据,例如标准mysqli_real_escape_string函数,还是应该使用它?
我没有使用预处理语句,我正在通过他们的数据库访问对象访问数据库,并想知道如何转移我传递给它的数据?
我找到了quoteValue方法,但它包含在Yii调用的内容中,Connection represents a connection to a database via PDO.因此我不确定它是否是正确的方法?
是否可以更改邮件的默认查看路径Yii 2?
阅读本文,似乎可以更改视图路径的唯一方法是调用:
setViewPath()
Run Code Online (Sandbox Code Playgroud)
..但我不想每次想编写代码来发送邮件时都必须调用它;我希望能够更改默认视图路径。这可以做到吗?如果可以,怎么做?
我刚刚打开了一个包packagist,我试图运行一个composer update并收到错误:
Unknown downloader type: h. Available types: git, svn, hg, perforce, zip, rar, tar, gzip, phar, file.
Run Code Online (Sandbox Code Playgroud)
在主项目文件中我有这个:
"require": {
//.......
"cyphix333/sbb-code-parser": "dev-master"
},
Run Code Online (Sandbox Code Playgroud)
该composer.json文件cyphix333/sbb-code-parser是:
{
"name": "cyphix333/sbb-code-parser",
"description": "SBBCodeParser is a simple BBCode parser",
"keywords": [
"SBBCodeParser"
],
"homepage": "https://github.com/samclarke/SBBCodeParser",
"canonical": "https://github.com/cyphix333/SBBCodeParser",
"source": "https://github.com/cyphix333/SBBCodeParser/tree/master",
"autoload": {
"classmap": ["SBBCodeParser.php","classes/"]
},
"authors": [
{
"name": "Sam Clarke"
}
],
"require": {
"php": ">=5.3"
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定我在这里做错了什么?
我正在尝试使用Pikaday日期选择器脚本并且它工作正常,但是我想在点击字段和图标时触发它.
我正在使用该jQuery方法绑定它,例如:
var picker = new Pikaday({
field: $('#used_from')[0]
});
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,但后来我尝试了文档中提到的触发器选项,因此..
var picker = new Pikaday({
field: $('#used_from')[0],
trigger: $('#used_from_cal')[0],
});
Run Code Online (Sandbox Code Playgroud)
这也适用,但仅限于具有used_from_calid 的元素; 它不再适用于带有id的输入字段used_from.
我尝试使用多个选择器,例如:
var picker = new Pikaday({
field: $('#used_from, #used_from_calc')[0]
});
Run Code Online (Sandbox Code Playgroud)
......但这只适用于第一个元素.
CodePen: http ://codepen.io/anon/pen/RWJyQL
我目前有一个存储库,但我想暂时使用另一个存储库来推送更改,然后当我选择时,更改回另一个存储库并再次推送到该存储库(这是由于访问主存储库的原因) )。
所以我想知道,如果我想更改推送到的存储库,我所要做的就是更改git 配置文件中的源,例如:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
[remote "origin"]
url = git@bitbucket.org:myname/my-repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)
我只需更改这一行:
url = git@bitbucket.org:myname/my-repo.git
Run Code Online (Sandbox Code Playgroud)
...到新值然后再次返回到主存储库?...或者还有其他事情要做吗?如果是的话,做什么!?
我使用的平台在它自己的 CSS 中设置属性fill如下:
.tatsu-svg-icon-custom svg * {
fill: currentColor;
}
Run Code Online (Sandbox Code Playgroud)
最终我在本例中添加的 SVG 是黑色的- 这没有帮助。这个特定的 SVG 是一个多色 SVG,并fill在 SVG 代码中处理所有属性本身。
显然,如果我将此属性更改为另一种颜色,它会将整个 SVG 着色为该颜色 - 所以这也没有帮助。
所以我的问题是,如何恢复默认值,以便它不应用任何颜色?将其设置为initial使 SVG 透明。
我已经使用MySQL多年,但没有很多使用InnoDB引擎的经验.
我现在正在对它进行一些测试,因为我将要使用它并且根据我已经阅读的内容,如果THAT事务中的任何查询存在任何问题,则不应该允许任何"经历".
我的问题是,为什么,在下面的代码....当第三个查询显然有问题时,它仍然将前两个查询输入数据库吗?
$query = "BEGIN";
mysql_query($query);
$query = "INSERT INTO list_columns(lid,column_name) VALUES(8,'test')";
mysql_query($query);
$query = "INSERT INTO list_columns(lid,column_name) VALUES(8,'test')";
mysql_query($query);
$query = "INSERT INT list_columns(lid,column_name) VALUES(8,'test')";
mysql_query($query);
$query = "COMMIT";
mysql_query($query);
Run Code Online (Sandbox Code Playgroud)
编辑:我理解使用ROLLBACK&all .....但我认为交易的全部目的是如果交易中的任何查询都有任何问题,那么它们中的任何一个都将被执行......或者这只是在一个查询中有多个插入的情况,例如....如果其中一个插入存在问题,那么将不会插入任何插入?
我试图用一个或多个空格分割一个字符串,但下面不起作用..相反,它将整个字符串作为一个单一数组返回。
$str = 'I am a test';
$parts = preg_split('/\s+/', $str, PREG_SPLIT_NO_EMPTY);
print_r($parts);
Run Code Online (Sandbox Code Playgroud)
这是它返回的内容:
Array
(
[0] => I am a test
)
Run Code Online (Sandbox Code Playgroud) php ×6
yii2 ×4
yii ×3
regex ×2
composer-php ×1
css ×1
datepicker ×1
fill ×1
git ×1
innodb ×1
javascript ×1
jquery ×1
mysql ×1
pikaday ×1
preg-split ×1
svg ×1
transactions ×1