标签: yii2-basic-app

无效的验证规则:在 Yii2 中,规则必须同时指定属性名称和验证器类型

在我的基本应用项目中,我正在尝试集成注册表单,但出现此错误:

无效的验证规则:规则必须同时指定属性名称和验证器类型。

我的代码在这里。

注册表格.php

<?php
namespace app\models;
use yii\base\Model;
use app\models\User;

/**
 * Signup form
 */
class SignupForm extends Model
{
    public $user_fname;
    public $user_email;
    public $user_password_hash;
    /**
     * @inheritdoc
     */


    public function rules()
    {
        return [
            [['user_fname','user_email', 'user_password_hash'], 'required'],
            // rememberMe must be a boolean value

            ['user_password_hash','match','pattern'=>'$\S*(?=\S*[a-z])(?=\S*[A-Z])(?=\S*[\d])\S*$','message'=>'Password must have atleast 1 uppercase and 1 number '],
            [['user_password_hash'],'string','min'=>6],
            //email validation
            ['user_email','email']
            [['user_email'], 'string', 'max' => 255],
            [['user_fname'], 'string', 'max' => 45],
        ];
    }
    /**
     * Signs user up.
     *
     * …
Run Code Online (Sandbox Code Playgroud)

yii2 yii2-user yii2-basic-app yii2-validation

5
推荐指数
1
解决办法
9102
查看次数

如何在yii2查询构建器中基于子查询在where条件中编写if条件

我在主查询中有一个子查询,如下所示:

$subquery = (new Query())->select('COUNT(project_sup_id)')
    ->from('project_supervisors AS sup')
    ->where(['AND','sup.project_ref_id = p.project_id']);

$uQuery =(new Query())->select(['project_id','supcount' => $subquery])
    ->from('projects AS p')
    ->join('LEFT JOIN','project_supervisors AS sup','sup.project_ref_id = project_id')
    ->andWhere('IF(supcount>0, sup_project_status=1, project_status=1)');
Run Code Online (Sandbox Code Playgroud)

我正在尝试根据逻辑编写 where 条件,即,如果从子查询获得的计数大于零,则 where 条件必须为sup_project_status=1else project_status=1。在普通的Mysql中,很容易在where里面写if条件,但在yii2中我不明白如何写。

yii yii2 yii2-advanced-app yii2-basic-app yii2-model

5
推荐指数
1
解决办法
2950
查看次数

没有型号yii2的ActiveForm

我想创建ActiveForm没有模型,以防万一.我尝试过dynamicModel但是我遇到了一些错误:

use yii\base\DynamicModel;
$model = DynamicModel::validateData(compact('KOMENTAR'), [
   [['KOMENTAR'], 'string', 'max' => 128],
]);
Run Code Online (Sandbox Code Playgroud)

这是我想要创建的表单

<br>
<?php $form = ActiveForm::begin([
    'method' => 'post',
]); ?>

<?= $form->field($model, 'KOMENTAR')->textarea(['rows' => 6])->label(false) ?>

<div class="form-group">
    <?= Html::submitButton('POST', ['class' => 'btn btn-primary']) ?>
</div>
Run Code Online (Sandbox Code Playgroud)

这是错误

Getting unknown property: yii\base\DynamicModel::KOMENTAR
Run Code Online (Sandbox Code Playgroud)

yii2 yii2-advanced-app yii2-basic-app

4
推荐指数
2
解决办法
3万
查看次数

通过composer安装Yii2失败

我想通过composer安装yii2,它给了我一个错误

这是错误:

  Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - yiisoft/yii2 2.0.9 requires bower-asset/jquery 2.2.*@stable | 2.1.*@stable | 1.11.*@stable | 1.12.*@stable -> no matching package found.
    - yiisoft/yii2 2.0.8 requires bower-asset/jquery 2.2.*@stable | 2.1.*@stable | 1.11.*@stable -> no matching package found.
    - yiisoft/yii2 2.0.7 requires bower-asset/jquery 2.2.*@stable | 2.1.*@stable | 1.11.*@stable -> no matching package found.
    - yiisoft/yii2 2.0.6 requires bower-asset/jquery 2.1.*@stable | 1.11.*@stable -> no matching package found.
    - yiisoft/yii2 2.0.5 requires …
Run Code Online (Sandbox Code Playgroud)

php yii composer-php yii2 yii2-basic-app

4
推荐指数
1
解决办法
6730
查看次数

无法在yii2中验证您的数据提交错误请求(#400)(如果选择视频格式)

我是新的yii2,所以我有这个问题.我想使用fileinput所以我添加fileinput这个网址 http://www.yiiframework.com/doc-2.0/guide-input-file-upload.html 如果我用文件输入创建新模型(选择视频),如果我删除模型中的项目:**Ber Request(#400)无法验证您的数据提交.如果我选择图像,它可以正常工作如何在yii2上传视频?

我的日志:

exception 'yii\web\BadRequestHttpException' with message 'Unable to verify your data submission.' in C:\xampp\htdocs\project\vendor\yiisoft\yii2\web\Controller.php:110
Stack trace:
C:\xampp\htdocs\project\vendor\yiisoft\yii2\base\Controller.php(149): yii\web\Controller->beforeAction(Object(yii\base\InlineAction))
C:\xampp\htdocs\project\vendor\yiisoft\yii2\base\Module.php(455): yii\base\Controller->runAction('delete', Array)
C:\xampp\htdocs\project\vendor\yiisoft\yii2\web\Application.php(84): yii\base\Module->runAction('music/delete', Array)
C:\xampp\htdocs\project\vendor\yiisoft\yii2\base\Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
C:\xampp\htdocs\project\web\index.php(12): yii\base\Application->run()
{main}
Run Code Online (Sandbox Code Playgroud)

请帮我?谢谢 !

fileinputstream yii-extensions yii2 yii2-advanced-app yii2-basic-app

3
推荐指数
1
解决办法
4643
查看次数

受保护的目录存在并在Yii2中创建自定义验证程序

我正在为Yii2搜索密码强度计.我为Yii1 找到了这篇文章.我在protected那里看到了目录.我找不到这个文件夹了.它是否可用于基本应用程序模板或高级应用程序模板?

php yii2 yii2-basic-app yii2-validation

3
推荐指数
1
解决办法
456
查看次数

调用未定义的方法app\models\Message :: model()

我是Yii2的新手,使用Gii工具,我为简单的'Message'类创建了模型和CRUD组件,其中一个字段'content'映射到tbl_message.

我收到错误,当尝试使用findByPk函数检索一个消息对象时,如下所示:

$message = Message::model()->findByPk(4);
Run Code Online (Sandbox Code Playgroud)

错误信息:

Call to undefined method app\models\Message::model()
Run Code Online (Sandbox Code Playgroud)

php activerecord yii2 yii2-basic-app

3
推荐指数
1
解决办法
4895
查看次数

如何在yii2中的目录中创建目录并将文件上传到该目录中

我有一个表格

  <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
 <?php echo $form->field($userformmodel, 'user_image')->fileInput(); ?>
 <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
 <?php ActiveForm::end(); ?>
Run Code Online (Sandbox Code Playgroud)

我正在上传表单中的文件并提交

In the model I have written the code as

 public function rules()
{
    return [
        [['user_image'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg']
    ];
}

 public function upload()
{
    if ($this->validate()) {
        $this->user_image->saveAs('uploads/' . $this->user_image->baseName . '.' . $this->user_image->extension);
        return true;
    } else {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的控制器中

 public function actionProfile()
{ …
Run Code Online (Sandbox Code Playgroud)

yii2 yii2-advanced-app yii2-basic-app yii2-model yii2-validation

3
推荐指数
1
解决办法
1万
查看次数

在 yii2 中设置错误动作布局不起作用

为了设置错误操作,我在控制器中添加了此代码

public function beforeAction($action) {
    if ($action->id == 'error')
        $this->layout = 'iframe-main.php';

    $this->enableCsrfValidation = false;
    return parent::beforeAction($action);
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用。错误布局显示在默认布局中

error-handling yii2 yii2-basic-app

3
推荐指数
1
解决办法
6826
查看次数

yii2如何运行控制台控制器功能

我被卡住了.我正在尝试从命令shell运行一些函数.我正在使用基本项目中的HelloController.当我运行php yii hello它的工作正常并且索引函数正在运行但是如果我尝试运行不同的函数,就像php yii hello/create我收到此错误一样 -

错误:未知命令.

我将create函数添加到此控制器.奇怪的是,当我跑步时,php yii我正在看到创建命令.我的控制器代码

namespace app\commands;

use yii\console\Controller;
use Yii;

class HelloController extends Controller
{

    public function actionIndex($message = 'hello world')
    {
        echo $message . "\n";
    }
    public function actionCreate($message = 'hello world')
    {
        echo $message . "\n";
    }

}
Run Code Online (Sandbox Code Playgroud)

更新: 我的配置文件是

Yii::setAlias('@tests', dirname(__DIR__) . '/tests');

$params = require(__DIR__ . '/params.php');
$db = require(__DIR__ . '/db.php');

return [
    'id' => 'basic-console',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log', 'gii'],
    'controllerNamespace' …
Run Code Online (Sandbox Code Playgroud)

php yii2 yii2-basic-app

3
推荐指数
1
解决办法
1万
查看次数