jason571

第 282 位会员

会员
个人信息
  • 加入于 2015-12-23 14:51:50
  • 最后登录时间 6年前
个人成就
  • 发表文章次数 3
  • 发布回复次数 13
  • 个人主页浏览次数 9
trntv\filekit\widget\upload莫名其妙地有的上传成功,几乎一样的代码却上传失败6年前

好像这个问题本质上是$model->load()的问题,以前也碰到过程通过$model->load()自动填充属性值之后,发现个别的属性无法正确赋值,然后也都没管自己手工显性赋值了。

但是,究竟什么原因,一直都没搞清楚过。

trntv\filekit\widget\upload莫名其妙地有的上传成功,几乎一样的代码却上传失败6年前

问题解决了,虽然不清楚为什么只有这样修改才能成功: 底下注释起来的那一段是actionUpdate原来的代码,上面的部分是我加了一大堆打日志的代码,发现$model->save()的返回值不正确,加了两行显性化地赋值就可以了。 请大神@forecho帮看看为啥必须加两句才成,而picture属性却不需要。

    public function actionUpdate()
    {
        $model = UserProfile::find()->where(['user_id' => Yii::$app->user->identity->id])->one();

$fp = fopen('/tmp/123', 'a');
        $loadResult = $model->load(Yii::$app->request->post());
fwrite($fp, date('Y-m-d H:i:s ').'$loadResult'.PHP_EOL.print_r($loadResult, true));
fwrite($fp, date('Y-m-d H:i:s ').'$model'.PHP_EOL.print_r($model, true));
        if ($loadResult)
        {
            $model->idcard_base_url = $model->idcard['base_url'];
            $model->idcard_path = $model->idcard['path'];
            $saveResult = $model->save();
fwrite($fp, date('Y-m-d H:i:s ').'$saveResult'.PHP_EOL.print_r($saveResult, true));
        }

        if ($loadResult && $saveResult) {
            return $this->redirect(['view']);
        } else {
            return $this->render('update', [
                'model' => $model,
            ]);

/*
        if ($loadResult = $model->load(Yii::$app->request->post()) && $saveResult = $model->save()) {
            return $this->redirect(['view']);
        } else {
            return $this->render('update', [
                'model' => $model,
            ]);
*/


        }
    }
2016-04-21 10:10:08 $loadResult
12016-04-21 10:10:08 $model
common\models\UserProfile Object
(
    [picture] => Array
        (
            [path] => 1/sR5ngm10ktAsc-dHhRJs3LkuM8hni-SB.png
            [name] => 
            [size] => 33300
            [type] => image/png
            [order] => 
            [base_url] => http://www.test.cn/storage/web/source
        )

    [idcard] => Array
        (
            [path] => 1/jT7y4OfWbGp_-On9w9sVnWGuALeZNmSN.jpg
            [name] => Hydrangeas.jpg
            [size] => 595284
            [type] => image/jpeg
            [order] => 
            [base_url] => http://www.test.cn/storage/web/source
        )

    [_attributes:yii\db\BaseActiveRecord:private] => Array
trntv\filekit\widget\upload莫名其妙地有的上传成功,几乎一样的代码却上传失败6年前

@forecho 好像跟这个没啥关系,我按照这个修改了之后问题依旧。另外,就是原来那样的写法,用户的照片也能正常上传的,只是身份证照片没法上传成功,着实诡异。

按照GetYii Gihub上的原始安装方法安装完成后提示:The requested URL /getyii/frontend/web/signup不存在6年前

@wfm2008124 @forecho 找到具体原因了:)

<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
                # 下面这一句必须允许覆盖,不能写None,要使用All,源程序中的.htaccess中的配置无法生效!
		AllowOverride All
		Order allow,deny
		allow from all
</Directory>
按照GetYii Gihub上的原始安装方法安装完成后提示:The requested URL /getyii/frontend/web/signup不存在6年前

@forecho #3楼 urlManager除了在代码中设置了之外,是否有在Apache服务器配置上面做过修改? 如果没有服务器配置的特殊修改,按理说,我直接从官方github上拿下来的代码,执行完php yii install就应该都正常可用才对吧?

按照GetYii Gihub上的原始安装方法安装完成后提示:The requested URL /getyii/frontend/web/signup不存在6年前

@wfm2008124 #4楼 我按照你说的将enablePrettyUrl关闭掉,确实链接都正常了。 但是,原本应该打开才是期望的效果啊,现在关了URL都变成了Yii的默认形式:http://localhost:8080/getyii/frontend/web/index.php?r=topic 这并不是期望的效果

composer报错:PHP Fatal error: Call to undefined method7年前

from :http://www.cnblogs.com/xinpureZhu/p/4989083.html

错误

很多时候即使是常用的命令也会出现一些奇奇怪怪的错误, 难以预知。。。

Input:

composer update

Output:

PHP Fatal error: Call to undefined method Fxp\Composer\AssetPlugin\Package\Version\VersionParser::parseLinks() in /root/.composer/vendor/fxp/composer-asset-plugin/Repository/VcsPackageFilter.php on line 272

Fatal error: Call to undefined method Fxp\Composer\AssetPlugin\Package\Version\VersionParser::parseLinks() in /root/.composer/vendor/fxp/composer-asset-plugin/Repository/VcsPackageFilter.php on line 272

解决方法

rm -rf ~/.composer/vendor/fxp

参考链接

https://github.com/yiisoft/yii2/issues/9794

Yii2 使用 .env 来配置项目环境变量7年前

@forecho 我现在仅仅搭了个Yii2 Advanced模板app目录为advanced,要体验yii2-rbac的话,请问文档中提到的下面这段代码应该放到哪个文件中合适? 我尝试放到/var/www/html/advanced/backend/views/layouts/main.php中,发现没什么效果

也不知道通过哪个URL才能访问到yii2-rbac对应的功能,谢谢。

use menu

echo  Menu::widget(
    [
        'options' => [
            'class' => 'sidebar-menu'
        ],
        'items' => [
            [
                'label' => Yii::t('app', 'Dashboard'),
                'url' => Yii::$app->homeUrl,
                'icon' => 'fa-dashboard',
                'active' => Yii::$app->request->url === Yii::$app->homeUrl
            ],
            \Yii::$app->getModule('rbac')->getInstance()->getItems() // add menu
        ]
    ]
);
Yii2 使用 .env 来配置项目环境变量7年前

要先把配置中的as access注释掉才能yii migrate,建议在github项目的说明文档中做一个备注吧

[user@host advanced]$ cat common/config/main.php
<?php
return [
    'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
    'language' => 'zh-CN',
    'components' => [
        'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
        'authManager' => [
            'class' => 'yii\rbac\DbManager',
        ],
    ],
    'modules' => [
        'rbac' => [
            'class' => 'yiier\rbac\Module',
            // 'allowNamespaces' => [
            //    'yiier\rbac\controllers',
            //    'api\controllers',
            //    'api\modules\user\controllers',
            // ],
            // 'menus' => [
            //    'users' => 'User'
            // ],
            // 'userClassName' => 'app\models\User',
            // 'idField' => 'id',
            // 'usernameField' => 'shop_name',
        ],
    ],
/*
    'as access' => [
         'class' => 'yiier\rbac\components\AccessControl',
    ],
*/
];

@forecho

Yii2 使用 .env 来配置项目环境变量7年前

试了一下你说的yiier-rbac,竟然连安装都失败了。。@forecho

[user@host advanced]$ php yii migrate --migrationPath=@yii/rbac/migrations/
Exception 'yii\base\UnknownPropertyException' with message 'Getting unknown property: yii\console\ErrorHandler::errorAction'

in /var/www/html/advanced/vendor/yiisoft/yii2/base/Component.php:143

Stack trace:
#0 /var/www/html/advanced/vendor/yiier/yii2-rbac/src/components/AccessControl.php(78): yii\base\Component->__get('errorAction')
#1 /var/www/html/advanced/vendor/yiisoft/yii2/base/ActionFilter.php(67): yiier\rbac\components\AccessControl->isActive(Object(yii\base\InlineAction))
#2 [internal function]: yii\base\ActionFilter->beforeFilter(Object(yii\base\ActionEvent))
#3 /var/www/html/advanced/vendor/yiisoft/yii2/base/Component.php(541): call_user_func(Array, Object(yii\base\ActionEvent))
#4 /var/www/html/advanced/vendor/yiisoft/yii2/base/Module.php(607): yii\base\Component->trigger('beforeAction', Object(yii\base\ActionEvent))
#5 /var/www/html/advanced/vendor/yiisoft/yii2/base/Controller.php(139): yii\base\Module->beforeAction(Object(yii\base\InlineAction))
#6 /var/www/html/advanced/vendor/yiisoft/yii2/console/Controller.php(91): yii\base\Controller->runAction('', Array)
#7 /var/www/html/advanced/vendor/yiisoft/yii2/base/Module.php(455): yii\console\Controller->runAction('', Array)
#8 /var/www/html/advanced/vendor/yiisoft/yii2/console/Application.php(167): yii\base\Module->runAction('migrate', Array)
#9 /var/www/html/advanced/vendor/yiisoft/yii2/console/Application.php(143): yii\console\Application->runAction('migrate', Array)
#10 /var/www/html/advanced/vendor/yiisoft/yii2/base/Application.php(375): yii\console\Application->handleRequest(Object(yii\console\Request))
#11 /var/www/html/advanced/yii(27): yii\base\Application->run()
#12 {main}
Yii2 使用 .env 来配置项目环境变量7年前

这个项目我也看了,在琢磨怎么添加上rbac权限控制的UI界面,可以像adminLTE那样用界面管理角色和权限 有好方法推荐吗 @echo @forecho