标签: yii2-advanced-app

没有http,https的Yii2网址验证

我在我的模型中使用了url验证代码,但它给了我错误.我只是验证用户是否只使用google.com或yahoo.com而不是http,需要www.我怎么能做到这一点.

 [['thankyou_page_url','confirmation_page_url'],'url'],
Run Code Online (Sandbox Code Playgroud)

yii2 yii2-advanced-app

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

在Active Record中使用带有多个where子句的find()

我想在3组中的Active Record查询之后划分(使用括号).第一组将从第一个"Where"子句到最后一个"orWhere".第二和第三将使用"andWhere".

请给我一些关于如何使用括号分隔所有3个部分的建议.

$query = Book::find()
->where('book_name LIKE :book_name', array(':book_name' => 
'%'.$book_name.'%'))
->orWhere('book_category LIKE :book_category', array(':book_category' =>'%'.$category.'%'))
->orWhere('finance_subcategory LIKE :finance', array(':finance' => '%'.$category.'%'))
->orWhere('insurance_subcategory LIKE :insurance', array(':insurance' => '%'.$category.'%'))
->andWhere('address LIKE :address', array(':address' => '%'.$address.'%'))
->andWhere('status =:status', array(':status' => 'Enabled'))
->orderBy('book_id');
Run Code Online (Sandbox Code Playgroud)

php mysql yii yii2 yii2-advanced-app

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

我在哪里将全局变量放在Yii2中类似于YII_DEBUG和YII_ENV

我正在建立一个名为"市场"的"子域名"网站.所以网址将是marketplace.sample.com.我正在使用Yii2高级应用程序,我将以下代码添加到位于前端/ web的index.php中.

defined('MARKETPLACE') or define('MARKETPLACE', preg_match('/^marketplace/', $_SERVER['HTTP_HOST']) === 1 ? true : false);
Run Code Online (Sandbox Code Playgroud)

这适用于我的环境,但是,我刚刚意识到index.php文件位于Yii2中的.gitignore文件中,因为该文件是由init脚本创建的,因此对它的更改将通过运行init来覆盖.

无论如何,问题是:我在哪里放置这些代码,以便它可以与开发团队的其他人一起提交和共享,并在推送代码时将其投入生产?

我试图把这个代码放在common/config/params.php中但是当我尝试访问变量来确定使用哪个路由时我不能,因为Yii应用程序在前端/ config/main时没有被初始化. php文件运行,我收到一个错误,我试图访问非对象的属性.

/frontend/config/main.php

'defaultRoute' => MARKETPLACE ? 'marketplace' : 'site',
Run Code Online (Sandbox Code Playgroud)

/frontend/config/main.php(改为使用param)

'defaultRoute' => Yii::$app->params['marketplace'] ? 'marketplace' : 'site'
Run Code Online (Sandbox Code Playgroud)

第二个给出了我试图访问非对象属性的错误.

php yii2 yii2-advanced-app

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

Yii2 添加一个不在模型中的表单字段

据我们所知,

<?= $form->field($model, 'name_field')->textInput() ?>
Run Code Online (Sandbox Code Playgroud)

在模型/表中添加连接到“name_field”的文本字段。

我想在模型/表中添加一个字段,然后在失去焦点时运行一些 JS 来计算其他字段。

您如何首先添加未连接到模型的自由文本字段?其次,有没有人有将 JS/Jquery 添加到 _form.php 的例子?

yii2 yii2-advanced-app

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

Yii2注销链接问题

我将此功能用于注销链接,而不是在菜单上使用它。

我使用的这段代码:

<?= Html::a('Logout', ['site/logout'], ['data-method' => 'post']) ?>
Run Code Online (Sandbox Code Playgroud)

显示-

不允许的方法。该网址只能处理以下请求方法:POST。

我该如何解决这个问题?

yii2 yii2-advanced-app

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

Yii2 - 如果视图文件不存在,则重定向

如果视图文件不存在,我会尝试在Yii2中执行类似标准行为的操作.例如,如果视图'xyz'不存在然后重定向到另一个控制器操作,或者如果我只渲染标准视图(如特殊404页面)会更容易吗?

php yii2 yii2-advanced-app

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

Yii2:从 hasMany 关系中选择最后一条记录

我对 mysql 的了解非常基础,现在我面临一个“复杂”(对我来说)的查询,我被困在其中,所以如果有人能给我一些启示,请提前感谢您。

我有三张表:

订单

id | name | comments | ...
Run Code Online (Sandbox Code Playgroud)

订单行

id | name | sDate | eDate | comments | ...
Run Code Online (Sandbox Code Playgroud)

订单行统计信息

id | lineID | date | status | ...
Run Code Online (Sandbox Code Playgroud)

每天 OrderLinesStats 都会通过 cron 作业更新,并获取包含实际日期、状态和其他字段的新记录,因此最高 id 是实际数据。

我试图在 yii2 中获取最后一个 stats 行,如下所示:

在 OrdersLines 模型中:

public function getLastOrdersLinesStats()
{
    return $this->hasMany(OrdersLinesStats::className(), ['lineID' => 'id'])
        ->orderBy(['id'=>SORT_DESC])
        ->groupBy('lineID');
}
Run Code Online (Sandbox Code Playgroud)

订单型号:

public function getOrdersLines()
    {
        return $this
            ->hasMany(OrdersLines::className(), ['orderID' => 'id'])
            ->orderBy(['typeID' => SORT_ASC, 'name' => SORT_ASC])
            ->with(['lastOrdersLinesStats']);
    } …
Run Code Online (Sandbox Code Playgroud)

php mysql yii2 yii2-advanced-app

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

不能使用 yii\base\Object 作为对象,因为 'Object' 是一个特殊的类名 yii2 Advance

我只是买了一台更强大的电脑,安装了 Composer 并想继续我的项目,但是当我使用 gii 时,它给了我这个错误。我该如何解决?为什么我得到它?谢谢你。

yii2-advanced-app

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

PHP 与 Nginx - 403 Forbidden

我想用 nginx 运行项目 yii2(高级模板)。我将 virtualbox 与 vagrant 一起使用(ubuntu 16.04,php 5.6)

我有以下设置nginx文件

//

vhost1.conf
server {
   listen                *:80;

   server_name  frontend.test;
   client_max_body_size 128m;

   root /var/www/frontend/web/;
     index index.php;

   access_log            /var/log/nginx/vhost1.access.log;
   error_log             /var/log/nginx/vhost1.error.log;
   location / {
     try_files $uri $uri/ /index.php$is_args$args;
   }

   location ~ ^/assets/.*\.php$ {
       deny all;
   }

   location ~ \.php$ {
     include fastcgi_params;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_pass 127.0.0.1:9000;
     #fastcgi_pass unix:/var/run/php5-fpm.sock;
     try_files $uri =404;
   }

   location ~* /\. {
     deny all;
   }
 }
Run Code Online (Sandbox Code Playgroud)

我有以下结构项目的许可:

vagrant@machine1]-[/var/www]-[git master] 
$ ls -la frontend/
total 68
drwxrwxr-x 1 …
Run Code Online (Sandbox Code Playgroud)

php nginx yii yii2 yii2-advanced-app

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

根据收到的请求在 Yii2 中的 $_POST 中设置值?

我正在编写一个拦截器来验证从 POST 收到的请求和解码数据。解码数据后,我必须设置数据,$_POST以便我以前的所有编写器功能都能正常工作。

我已经设置了如下值

$_POST['amount'] = $data['a'];
$_POST['currency'] = $data['c'];
Run Code Online (Sandbox Code Playgroud)

我能够使用这些变量,$_POST但无法访问这些值Yii::$app->request->post()

所以我的问题是我可以通过 Yii::$app->request->post()

php yii2 yii2-advanced-app

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

标签 统计

yii2-advanced-app ×10

yii2 ×9

php ×6

mysql ×2

yii ×2

nginx ×1