我正在使用Yii Framework 2.0.我有一个带有文本输入字段的表单,用于表示日期.我已经阅读了有关类yii\validators\Validator的Yii Framework 2.0 以及已知的所有验证器密钥,这些密钥可以在模型类的rules()方法中使用.当我使用如下的日期键时,它不会验证任何内容.这意味着我仍然可以在该输入字段中放置一些文本并可以发布表单.
当我将其更改为布尔值或电子邮件时,我可以看到,当我在输入字段中输入错误时,它会很好地验证.如何使用Yii Framework 2.0验证输入字段内的日期值?
我的rules()方法:
public function rules()
{
return [
[['inputfield_date'], 'required'],
[['inputfield_date'], 'safe'],
[['inputfield_date'], 'date'],
];
}
Run Code Online (Sandbox Code Playgroud)
我的观点页面:
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'inputfield_date')->textInput(); ?>
<?php ActiveForm::end(); ?>
Run Code Online (Sandbox Code Playgroud) 我在模型中写了规则:
public $password_repeat;
/**
* @inheritdoc
*/
public function rules()
{
return [
....
....
['password', 'required'],
['password', 'string', 'min' => 6],
['password_repeat', 'compare', 'compareAttribute'=>'password', 'message'=>"Passwords don't match" ],
];
}
Run Code Online (Sandbox Code Playgroud)
如果我使用不同的密码Password和Password Repeat领域,它提供了错误.所以,这意味着它有效.但问题是,如果Password Repeat字段为空,它不会给出任何错误.
您可以使用PHP获取当前包含路径 get_include_path()
我想知道什么是轻量级方法来检查是否可以包含文件而不发出PHP错误.我正在使用Yii框架,我想导入而不发出PHP错误,但我失败了.
突击队需要你的帮助.
我在Yii有一个控制器:
class PageController extends Controller {
public function actionSOMETHING_MAGIC($pagename) {
// Commando will to rendering,etc from here
}
}
Run Code Online (Sandbox Code Playgroud)
我需要在Yii CController下使用一些神奇的方法来控制/ page ||下的所有子请求 页面控制器.
这是Yii的某种可能吗?
谢谢!
我在Yii应用程序中跟随cgridview,我想更改日期格式的值,
'columns'=>array(
array(
'name'=>'Date',
'header'=>'Date',
'value'=>'$data["work_date"]'
),
Run Code Online (Sandbox Code Playgroud)
我想以格式dd-mm-yyyy显示日期,目前显示为yyyy-mm-dd.
我经常遇到这个问题..
让我们说..在博客应用程序中,我需要通过电子邮件发送所有活跃用户..
我所做的是在用户上写一个findAll,其上一次登录的条件大于某个值...并获取所有用户对象...然后通过所有用户模型对象运行foreach并将数据存储在一个数组中,然后使用数组..
换句话说,后端正在发生的事情是我正在加载整个模型,而我只需要0.5%那些信息,然后运行一个脏代码来获取数组中的值,然后用它来处理..
性能和脏代码不是很糟糕..
现在我能想到的其他方法是使用commandBuilder和编写查询,然后运行相同的脏代码来获取数组中的值.解决了性能问题.但是正如人们所说的在mvc框架中编写sql,并不是一个好主意.
我真正想要的...一些类似的函数,如果它是一个列,则给出数组中的列值,或者如果有多列,则将列名作为索引的数组.
所以我想要做的是通过扩展ActiveRecord或类似的东西来实现它,我想要检查的是,是否有人已经实现了类似的东西,或者有一些想法... :)
我有以下代码从模型中获取数据.
$notifyModel = Notification::model()->findByAttributes(array(
'user_id'=> Yii::app()->user->uid
));
Run Code Online (Sandbox Code Playgroud)
现在我想计算提取的行数.无论是$notifyModel->count()工作还是工作count($notifyModel).这很简单,但谷歌搜索没有帮助.
我正在使用jquery来禁用提交按钮并加载加载图像,
在提交按钮我正在使用下面的内容:
<div id="registerbtn" name="registerbtn">
<input type="submit" class="btn btn-primary" icon="ok white" value="Register" id="register" name="register"/>
</div>
<div class="span4" style="display:none;" id="loadingtext">
<?php echo $imghtml=CHtml::image('images/loading.gif');?>
</div>
Run Code Online (Sandbox Code Playgroud)
在JQuery中,我使用以下代码:
$(document).ready(function() {
$('#register').click(function() {
$('input[type="submit"]').attr('disabled','disabled');
});
$("#loadingtext").show();
});
});
Run Code Online (Sandbox Code Playgroud)
当我这样做,然后永久禁用此按钮,但如果我想删除那么我该怎么办?
我有一个临时模型作为viewModel.在我的CRUD操作(例如actionCreate)中,我想获取此viewModel数据并将其分配给ActiveRecord模型.我使用下面的代码但我的模型对象atrribute总是显示属性的NULL值:
$model = new _Users();
if ($model->load(Yii::$app->request->post())) {
Yii::info($model->attributes,'test'); // NULL
$attributesValue =[
'title' => $_POST['_Users']['title'],
'type' => $_POST['_Users']['type'],
];
$model->attributes = $attributesValue;
Yii::info($model->attributes,'test'); // NULL
$dbModel = new Users();
$dbModel->title = $model->title;
$dbModel->type = $model->type . ' CYC'; // CYC is static type code
Yii::info($dbModel->attributes,'test'); // NULL
if ($dbModel->save()) {
return $this->redirect(['view', 'id' => $dbModel->id]); // Page redirect to blank page
}
}
else {
return $this->render('create', [
'model' => $model,
]);
}
Run Code Online (Sandbox Code Playgroud)
我认为$ model-> load(Yii :: $ …
如果你说了以下控制器结构
<?php
namespace app\controllers;
use Yii;
use yii\web\Controller;
/**
* Test controller
*/
class TestController extends Controller
{
public function actionMyaction(){
...
//action logic
}
public function actionMyAction(){
...
//action logic
}
}
Run Code Online (Sandbox Code Playgroud)
可以使用路径访问第一个路径 example.com/test/myaction
每个Yii 1.x逻辑的第二个路由应该可以从example.com/test/myAction
Yii2.x中的路径访问,路由使用带连字符的结构,并且只能从example.com/test/my-action
无论如何在Yii2中使用camelCase结构启用路由,最好不要使用路由类扩展?
这很重要,因为它打破了所有链接(当然是互联网上的所有链接)向后兼容性,因此即使代码被完全重写,Yii1.x应用也永远无法迁移到Yii2.x. 这种变化的原因是什么?
yii ×10
php ×9
yii2 ×4
activerecord ×1
css ×1
date ×1
html ×1
jquery ×1
url-routing ×1
validation ×1