标签: yii2

Yii2 Gii : 您无权访问此页面

我正在使用 Yii2 advance 模板,我可以在本地计算机上成功访问 gii 工具。但是当我将其上传到真实服务器时,出现一条消息“您不允许访问此页面”。您能告诉我应该配置哪个文件吗?您可以打印屏幕或粘贴该配置文件的全部内容吗?

先谢谢你了。

gii yii2

0
推荐指数
1
解决办法
6144
查看次数

Yii2 从文件夹中删除文件

公共函数actionDelete($id)

{

    $model=$this->findModel($id);         
    unlink($_SERVER["DOCUMENT_ROOT"]."/../../uploads/".$model->image);       
Run Code Online (Sandbox Code Playgroud)

或者

    unlink(dirname(__FILE__).'/../../uploads/'.$model->image);
    $this->findModel($id)->delete();    
    return $this->redirect(['index']);       
}                                       
Run Code Online (Sandbox Code Playgroud)

yii2

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

Yii2 覆盖嵌套配置参数

我以这种方式合并我的配置:

$config = \yii\helpers\ArrayHelper::merge(
    (require (__DIR__ . '/../config/web.php')),
    (require __DIR__ . '/../config/overrides/web.php')
);
Run Code Online (Sandbox Code Playgroud)

这是config/web.php

$config = [
    'components' => [
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
                [
                    'class' => 'yii\log\EmailTarget',
                    'levels' => ['info'],
                    'categories' => ['parsingFailure'],
                    'logVars' => [],
                    'message' => [
                        'from' => ['system@host.com'],
                        'to' => ['support@host.com'],
                        'subject' => 'Message parsing failure',
                    ],
                ],
            ],
        ],
        //....some more components
    ]
];
Run Code Online (Sandbox Code Playgroud)

这是我尝试应用的覆盖 …

merge configuration yii2

0
推荐指数
1
解决办法
751
查看次数

Yii2 DateTime模型验证格式问题

创建了一个带有名为“until”的日期时间字段的模型,名称并不重要,只是它是日期时间。这是模型规则中的验证。

['until', 'datetime', 'format' => 'Y-m-d H:i:s'],
Run Code Online (Sandbox Code Playgroud)

后来,在实例化模型并更新字段后,我收到验证错误。

$model->until = '2017-10-15 14:30:04';
$eventRepeat->validate();
$errors = $model->errors;
Run Code Online (Sandbox Code Playgroud)

$errors['until'][0] 将显示“Until 的格式无效。”

我没想到会出现这个错误。

php validation datetime model yii2

0
推荐指数
1
解决办法
7498
查看次数

Yii2 - 重定向到控制器内新浏览器选项卡中打开的外部 URL

以下代码将抛出异常

数组到字符串的转换

我的目的是在另一个选项卡中加载具有特殊参数的外部网站。应该如何正确编码?请注意,重定向不应呈现内部控制器方法!

$paramValue = "12";
return $this->redirect("http://example.com?param=$paramValue", ['target' => '_blank']);
Run Code Online (Sandbox Code Playgroud)

我所实现的一切 - 没有错误 - 就是创建链接,但这不一样。所以,别无选择!

<center>
<?php echo Html::a(
    'StepStone laden',
    $url,
    [
        'class' => 'btn btn-success 
     btn-block',
        'target' => '_blank',
        'title' => 'Load StepStone',
        'data' => ['pjax' => '0']
    ]
);
?>
</center>
Run Code Online (Sandbox Code Playgroud)

编辑(穆罕默德):

这是我的解决方案,因为它实际上存在:

/* It's not possible to render external URL in aonther tab using php. So, following order will render external URL in same tab:
    return $this->redirect($url); */
  
private function RenderBoerse($name, $DynamicModel) { …
Run Code Online (Sandbox Code Playgroud)

php redirect yii2

0
推荐指数
1
解决办法
7243
查看次数

Yii2结合多个count和group by查询

我有一个项目,他们有 3 个状态。现在我需要统计每天每种状态的数量和总数。

我可以单独列出它们。但不知道如何将它们结合起来。

这是我的代码:

    $passed_counts = (new \yii\db\Query())
    ->select(['date', 'week', 'count(sku) as sku'])
    ->from('qa3d')
    ->where(['status' => 'Passed'])
    ->groupBy('date')->all();

    $failed_counts = (new \yii\db\Query())
    ->select(['date', 'week', 'count(sku) as sku'])
    ->from('qa3d')
    ->where(['status' => 'Failed'])
    ->groupBy('date')->all();

    $onhold_counts = (new \yii\db\Query())
    ->select(['date', 'week', 'count(sku) as sku'])
    ->from('qa3d')
    ->where(['status' => 'On Hold'])
    ->groupBy('date')->all();

    $total_counts = (new \yii\db\Query())
    ->select(['date', 'week', 'count(sku) as sku'])
    ->from('qa3d')
    ->groupBy('date')->all();
Run Code Online (Sandbox Code Playgroud)

现在我可以将它们分别列在 4 个表中。我想像这样将它们组合在一张表中,但不知道如何。

date Passed Failed On Hold Total

2019-01-16 1 4 2 7

2019-01-17 1 0 2 3

请在这件事上给予我帮助。

谢谢。

yii2 yii2-basic-app

0
推荐指数
1
解决办法
1627
查看次数

Yii2:设置时区

我在 Yii2 应用程序中设置了时区,如 config/web.php 中的文档所述:

'timeZone' => 'Europe/Berlin',
Run Code Online (Sandbox Code Playgroud)

但是:这仅对 Yii2 有效,显然不适用于 PHP 函数,例如date(). PHP 时区设置保持不变,因此 PHP 和 Yii2 之间存在差异。

如何使 Yii2 时区成为根据 Yii2 配置中的时区设置设置 PHP 时区的领先时区?

编辑

时区是在应用程序组件中设置的\Yii::$app,而不是在格式化程序组件中设置的。

我无法修改php.ini文件。

php timezone yii2

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

如何在 Yii2 中创建带有破折号的自定义 url?

我正在使用高级项目应用程序,并尝试在 Yii2 中添加 URL 规则来处理带有破折号的自定义 URL。

我想要做的是将 URL 更改为

http://www.example.com/post/details?url=example-post-title

http://www.example.com/example-post-title

我有以下配置,当 URL 参数没有破折号时(exampleposttitle),该配置可以正常工作。

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        // ...
        '<url:\w+>' => 'post/details',
    ],
],
Run Code Online (Sandbox Code Playgroud)

url yii2 yii-url-manager yii2-advanced-app

0
推荐指数
1
解决办法
381
查看次数

当我必须默认使用它时,如何通过 Yii2 迁移创建新数据库?

我有一个任务,描述为“使用 Yii2 迁移创建新数据库,并默认使用它”。但我有一些勾结:我必须在我的main-local.php文件中设置至少一个默认数据库才能开始迁移。但我也必须通过初始迁移创建这个数据库。

return [
    'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'mysql:host=localhost;dbname=default_base',
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
    ],
];
Run Code Online (Sandbox Code Playgroud)

我该如何处理?创建一个带有迁移的数据库并设置为默认数据库。

当我执行迁移时(迁移文件中有代码):

public function safeUp()
{
    $this->execute("CREATE DATABASE default_base");
}
Run Code Online (Sandbox Code Playgroud)

我有一个例外:

General error: 1007 Can't create database 'default_base'; database exists
Run Code Online (Sandbox Code Playgroud)

我意识到这是因为我已经在 phpmyadmin 中创建了 default_base(单击按钮“创建数据库”),并将其与我的main-local.php文件中的应用程序连接。但是我只需要在执行yii migrate.

UPD

我已经尝试了 rob006 推荐的方式,但出现连接错误

Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [1049] Unknown database 'default_base''
Run Code Online (Sandbox Code Playgroud)

我的 main-local.php 看起来就像 rob006 推荐的那样,但我仍然无法迁移。仅当我设置时才有效:

'preinstallDb' => [
                  'class'    => 'yii\db\Connection', …
Run Code Online (Sandbox Code Playgroud)

php mysql database-migration yii2 yii2-advanced-app

0
推荐指数
1
解决办法
1311
查看次数

我的 $model-&gt;load(Yii::$app-&gt;request-&gt;post() 返回布尔值 (false)

谁能告诉我为什么我$model->load(Yii::$app->request->post()返回布尔值 (false) ?我尝试 var_dump $model->load(Yii::$app->request->post(),它肯定有我的输入值(不为空)。

这是我的代码。我正在处理基于Vitalet's x-editable. 该字段将修改tema数据库列的值(tema的模型属性)。我尝试print_r($model->getErrors())在'else'语句中,我得到了 Array ( )

public function actionFetch(){
//There's only a single row in the table.
$model= Home::find()->one();

if (Yii::$app->request->isAjax) {

// use Yii's response format to encode output as JSON
\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;

// save posted model attributes
if ($model->load(Yii::$app->request->post()) && $model->save()) {

//extract the class name
$modelClassName = \yii\helpers\StringHelper::basename(get_class($model));
//grab the post parameters array (as attribute=>value)
$params = Yii::$app->request->post($modelClassName);
//pull the …
Run Code Online (Sandbox Code Playgroud)

ajax yii2

0
推荐指数
1
解决办法
818
查看次数