谁一开始就是大神?

PHP 第84页

PHP

save()时报500错误[2.0]

Noblelovely阅读(75)

在一个ajax发送请求和保存数据的时候报500错误
代码:

$res = new Apptxt();
			   
$res->datetime = time();
$res->appid = 7;
$res->content = "123456";
$res->creater = 7;
$res->isdel = 0;
$res->save();

错误代码

Exception 'ReflectionException' with message 'Class numerical does not exist' 

in C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\di\Container.php:415

Stack trace:
#0 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\di\Container.php(415): ReflectionClass->__construct('numerical')
#1 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\di\Container.php(358): yii\di\Container->getDependencies('numerical')
#2 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\di\Container.php(151): yii\di\Container->build('numerical', Array, Array)
#3 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\BaseYii.php(344): yii\di\Container->get('numerical', Array, Array)
#4 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\validators\Validator.php(206): yii\BaseYii::createObject(Array)
#5 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\Model.php(440): yii\validators\Validator::createValidator('numerical', Object(app\models\Apptxt), Array, Array)
#6 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\Model.php(404): yii\base\Model->createValidators()
#7 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\Model.php(184): yii\base\Model->getValidators()
#8 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\Model.php(340): yii\base\Model->scenarios()
#9 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\db\ActiveRecord.php(416): yii\base\Model->validate(NULL)
#10 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\db\BaseActiveRecord.php(589): yii\db\ActiveRecord->insert(true, NULL)
#11 C:\xampp\htdocs\coupon\controllers\NrkController.php(219): yii\db\BaseActiveRecord->save()
#12 [internal function]: app\controllers\NrkController->actionEdittxtmsg('0')
#13 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\InlineAction.php(55): call_user_func_array(Array, Array)
#14 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\Controller.php(151): yii\base\InlineAction->runWithParams(Array)
#15 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\Module.php(455): yii\base\Controller->runAction('edittxtmsg', Array)
#16 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\web\Application.php(84): yii\base\Module->runAction('nrk/edittxtmsg', Array)
#17 C:\xampp\htdocs\coupon\vendor\yiisoft\yii2\base\Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
#18 C:\xampp\htdocs\coupon\web\index.php(12): yii\base\Application->run()
#19 {main}

可能是因为什么,求大腿指教

是不是在Apptxt类里的rules里面给哪个属性加了个数字验证,把number打成了numerical?yii2里面没有内置叫numerical的验证类
粗心该打屁屁,哇咔咔~

如何在index.php里面设style样式[2.0]

Jimnice阅读(73)

我想在index.php中把第一列的宽度设定为100px大小,要怎么写代码
index.php代码如下:

'columns' => [
    ['class' => 'yii\grid\CheckboxColumn'],
    [
        'attribute' => 'sort',
        'format' => 'raw',
        'value' => function($model){
            return Html::textInput("sorts[{$model->id}]", $model->sort, ['style'=>'width:40px']);
        }
    ],
]

请教数据库多条件怎么查询[2.0]

lovequeen阅读(71)

请教下 $model->where([‘type’=>1])->andWhere([‘like’, ‘content’, $keyword]) 还有个条件 create_time > $time 应该怎么写

Accountdoc::find() ->andFilterWhere([‘=’,’nShopID’,$this->nShopID])
可以类似这样写
where([‘>’,’create_time’,$time])
andWhere([‘>’,’create_time’,$time])
用数组啊,可以把数组放进where
最简单的是
where([‘type’=>1,array(‘like’,’content’,$keyword),array(‘>’,’create_time’ ,$time)])
不知道有没有写错额~~你可以试试!

为啥从github上clone下来的包里没有vendor文件夹?[2.0]

richnice阅读(79)

从yiisoft/yii2-app-advanced上clone下来文件运行失败,然后发现比yiichina提供的压缩包少了个vendor文件夹,复制过去后问题解决。
请问vendor文件夹是什么用的?为啥官方下载的反而没有提供?

突然翻到自己以前问的老问题,看到下面两个回答都说得很含糊,自己回复一下正解:vendor是composer下载的依赖库文件,yii2-app-advanced这个项目代码里,只有其自己的项目文件,而其依赖的yii框架等类库,都记录在composer.json里面,只要安装好composer,然后install或update一下就是可以了。

vendor,如其名字,是第三方提供的工具。
你下载的只是yii自身的代码。
需要配合必要的第三方工具才能正常运行。
具体安装方法,请参考你下载文档页面中的说明,或者查看本站文档中的安装一节。

地的做好的yii项目,为什么传到服务器打不开[1.1]

Jimdear阅读(78)

上传到服务器,打开域名提示

Warning: require_once(D:\wwwroot\91zhai\wwwroot/../yii1/framework/yii.php) [function.require-once]: failed to open stream: No such file or directory in D:\wwwroot\91zhai\wwwroot\index.php on line 14

Fatal error: require_once() [function.require]: Failed opening required 'D:\wwwroot\91zhai\wwwroot/../yii1/framework/yii.php' (include_path='.;C:\php5\pear') in D:\wwwroot\91zhai\wwwroot\index.php on line 14

导入的两个文件在服务器路径和你本地路径不同。
你在本地和服务器上路径不一样吧。

Yii::$app->controller->id报错,请大侠点[2.0]

acgapple阅读(90)

$controllerID = Yii::$app->controller->id;
$actionID = Yii::$app->controller->action->id;

报错

PHP Notice – yii\base\ErrorException
Trying to get property of non-object

首先, 这两行代码没什么问题.
你肯定是用错了地方,
module里面 实例化controller[createController] 之后, 才将controller绑定到Yii::$app
而绑定action到当前controller的节点 则在 controller runAction之后
因此 , 你在module没有执行 runAction 之前, Yii::$app->controllernull
所以 moduleinit 事件之前(包括init事件内), Yii::$app->controller 都是 null
controllerbeforeAction 事件之前(包括beforeACtion事件内), Yii::$app->controller->action 也是没值的;;;
调用的位置不对吧。
当前位置,没有那个对象.
在控制器和视图里都可以用的,在控制器里也可以直接用$this->controller->id获取~

自动登录没有用啊![2.0]

Jimapple阅读(82)

不是就这样就可以了吗?Yii::$app->user->login($user, $this->rememberMe ? 3600 * 24 * 10 : 0)
我勾选记住登录,名字是_identity的cookie是有的,这是自动登陆的凭证吧?
我的怎么没用,还要做其他什么操作吗?
我用的就是Yii自带的那套。

user的配置:

'user' => [
    'identityClass' => 'common\models\User',
    'enableAutoLogin' => true,
    'loginUrl' => ['user/login', 'ref' => 1],
    'authTimeout' => 1800,
],

User实现的IdentityInterface接口代码如下:

/**
 * 通过user id查找身份
 * 
 * @param user_id $id        	
 * @return Ambigous <\yii\db\static, NULL>
 */
public static function findIdentity($id) 
{
	return static::findOne ( [ 
			'user_id' => $id,
			'enabled' => self::STATE_ENABLED 
	] );
}

/**
 * 用token查找身份,这个方法暂时没有用处
 * 
 * @param string $token        	
 * @param string $type        	
 */
public static function findIdentityByAccessToken($token, $type = null) 
{
	return null;
}

/**
 * 取得可用用来验证用户身份的KEY,每个用户的key需要唯一
 * 
 * @return string
 */
public function getAuthKey() 
{
	return null;
}

/**
 * 取user id
 * 
 * @return number
 */
public function getId() 
{
	return $this->user_id;
}

/**
 * 验证authKey
 * 
 * @param string $authKey        	
 * @return boolean
 */
public function validateAuthKey($authKey) 
{
	return $this->getAuthKey () === $authKey;
}

搞定:

    $cookie->value = json_encode([
        $identity->getId(),
        $identity->getAuthKey(),
        $duration,
    ], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

应用配置里面,对component[‘user’]的配置代码贴一下。
如果是你们自己实现的Identity类,把实现IdentityInterface的类代码也需要贴一下。这样才好方便你诊断问题。
我的没修改过,系统默认就支持记住14天。
确认下浏览器开启了cookie
回复见下面,莫名其妙提交两遍..

怎么用不同条件修改数据[2.0]

Cindypony阅读(87)

$this->updateAll($data, $where);

$data = [‘groupid’=>1];
//如 条件为 province=1, city=2
$where = [‘province’=>1, ‘city’=>2];

还想加个id in(1,2,3) 的条件进去 请教下怎么写

$where = ['province' => 1, 'city' => 2, 'id' => [1, 2, 3]]
Yii\db\Query
下面是官網的範例:
Where 使用方法可以詳閱
http://www.yiiframework.com/doc-2.0/yii-db-query.html
如果是小于,怎么写呢,大佬

GridView中如何判断图片是否已设置,如设置了则显示该图片,如设置则显示“设置”[2.0]

Cindyseagull阅读(76)

view中代码如下:img为model中的字段

<?= GridView::widget([
    'model' => $model,
     'tableOptions'=>['class'=>'table table-striped table-hover'],
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],

        'id',
        [
            'attribute'=>'img',      
            'format' => ['image',['width'=>'30','height'=>'30',]],
        ],

        ['class' => 'yii\grid\ActionColumn'],
    ],
]); ?>

判断img属性是否为空,根据结果输出图片或提示
你好,这个$model是哪儿来的啊,我的怎么是未定义????

服务器上无法访问[2.0]

NiceLion阅读(81)

在本地一切访问正常,用git上传到服务器后会访问index.php出现空白,访问其他文件会报404的错误。

你可以看看 vendor 這檔案還在不在
通常在 .gitignore
這檔案裡面 會預設禁止上傳
或是你用了 dist 檔案夾裡的 js 也會有可能
信息量太少…
服务上初始化了没? 开下debug试试。

登录

找回密码

注册