一组计算数字,只有1-2个会出现这种问题,我本地PHP5.5是没问题的,线上是PHP5.4。
还是有那么多位小数
剛剛上PHP官網看了看
從 5.2.7 以後都支援 precision
這方式 (應該不適版本問題)
或者是線上某些設定導致的, 我PHP5.4 是可執行
有可能是 php.ini setting precision = 14;
(這邊可能被更動了)
在你的code下
目前只知道有這種辦法可以設定 (可以上網爬一下類似的 php.ini percision 怎麼設定)
一组计算数字,只有1-2个会出现这种问题,我本地PHP5.5是没问题的,线上是PHP5.4。
还是有那么多位小数
剛剛上PHP官網看了看
從 5.2.7 以後都支援 precision
這方式 (應該不適版本問題)
或者是線上某些設定導致的, 我PHP5.4 是可執行
有可能是 php.ini setting precision = 14;
(這邊可能被更動了)
在你的code下
目前只知道有這種辦法可以設定 (可以上網爬一下類似的 php.ini percision 怎麼設定)
今天碰见了一个问题,就是更新数据的时候失败,写不进去。
$taxonomy=Taxonomy::findOne($id);
if($taxonomy->load(Yii::$app->request->post())&&$taxonomy->save()){
$this->redirect(['update','taxonomy'=>$taxonomy,'id'=>$id]);
}else{
return $this->render('update',['taxonomy'=>$taxonomy]);
}
上面是控制器代码。post值是有的,但是load方法好像没有把内容加载进去,虽然save和load都返回了true,数据还是没有改变。求解答,不知道是不是思路混了
post来的值, 和表单名一致么?.
例如:
一、
select u.username,count(a.id) num from user u left join article a on u.id = a.userid group by u.id order by num desc;
二、
/下面的查询user与userinfo一对一,user与userimage一对多/
select f.image from user u inner join userinfo f on u.id = f.userid and u.id = 123
union
select i.image from user u inner join userimage i on u.id = i.userid and u.id = 123;
类似于这些查询该怎么查?
yii 1
yii2
这个有讲的更明白点的方法么,我配置关系感觉有点乱。最后直接写的sql语句!
如果只是简单关联也可以用 \yii\db\Query
具体查看类手册 \yii\db\Query
比如
Yii 可以组合任何复杂的语句,但是你不要控制好Yii自动生成的括号,因为这会导致结果不一样。
yii的api文档是用什么软件从代码的注释部分自动生成的吗?
好比如http://www.csdn.net/article/2013-02-20/2814189-API_DOC_TOOLS
yii2生成文档用的是这个扩展 https://github.com/yiisoft/yii2-apidocrake note
article文件夹 index.php代码
[
'attribute' => 'cate',
'format' => 'raw',
'value' => function($model){
return Html::dropDownList("cates[{$model->id}]",$model->cate,\common\models\Article::$cates)
}
],
我想做成下拉框内的值改变时,触发一个方法 把数据库内的值改掉,用ajax怎么写啊?
求大神代码指点
return Html::dropDownList("cates[{$model->id}]",$model->cate,\common\models\Article::$cates,['onchange' => "update($model->id)"])
再去控制器里写对应的更新操作
大概流程就是这样 代码可能会有些小问题 你自己再调试下
会员登录信息 是以什么样的形式存放在Yii::$app->user->identity 里面的?
又不是session?那是什么?文件的形式存储?
通常…session
里面存放了用户id
,
然后具体数据 是通过user
组件配置的 identityClass
这个类中 findIdentity($id)
来获取的;
所以, 具体数据 你想怎么存, 完全可以自己在 findIdentity
方法中定义;
以上所述, 针对通常的web登陆
当然是Session啦
这个__id就是用户id
你用Yii Debugger看看
存在session也是个 对象。感觉 没有直接存数据 效率高。
在 AController里实现了一段功能,想在BController里面调用。
在Yii2里,控制器间互相调用真麻烦,最简单的方法就是写成静态的,但那就有很多属性不能用到。
有没有好的方法。
2种情况,一个是AController和BController中有很多功能或属性都是一样的,那可以把公共的放在基类里,让AController和BController去继承。另一个是AController和BController中只有少部分功能或属性两个控制器都会用到,那就把这些单独提取出来,写到一个Model里,或者在Controller和Model之间再定义一个Business类。如果BController的功能必须借助于AController中的属性,那代码实现本身可能有比较大的问题。
Yii::$app->runAction();
现在有一个问题:
$model = Test::model()->findAll();
echo json_encode($model);
输出结果为:[{},{},{}] 是空的?
$model是对象数组 是不是包含对象就会被清空?
1.1版本,用CJSON::encode($model)
对mode进行encode,直接用json_encode无法encode model对象
asArray()
我定义一个实体 无法获取POST过来的表单数据,代码如下:
1、Action
namespace app\controllers;
use app\models\FormModel;
use Yii;
use yii\web\Controller;
use yii\web\Request;
use yii\web\Response;
class FormController extends Controller {
public $enableCsrfValidation = false;
public function actionIndex()
{
$this->layout=false;
return $this->render("index",[]);
}
public function actionPost()
{
$model=new FormModel();
$model->load($_POST);
$model->attributes=$_POST;
echo json_encode($model->name);
}
}
2、Model
namespace app\models;
use Yii;
use yii\db\ActiveRecord;
class FormModel extends ActiveRecord {
public static function tableName()
{
return 'formmodel';
}
public function rules()
{
return [
[['name', 'name'], 'required'],
['id', 'id'],
];
}
}
3、视图
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width"/>
<title>用户登录</title>
<script src="/static/js/vendor/jquery-2.1.3.min.js"></script>
</head>
<body>
<div>
<form id="form1" method="post" action="/form/post">
id:<input type="text" name="id"/><br/>
name:<input type="text" name="name"/><br/>
<input type="button" id="btn" value="sumbit"/>
</form>
</div>
<script type="text/javascript">
$(function () {
$("#btn").click(function () {
$.ajax({
type: 'POST',
url: "/form/post",
data: $("#form1").serialize(),
success: function (data) {
},
dataType: "html"
});
});
});
</script>
</body>
</html>
4、视图对应表SQL
CREATE TABLE `formmodel` (
`id` varchar(255) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
错误:
Exception 'ReflectionException' with message 'Class id does not exist'
in E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\di\Container.php:415
Stack trace:
#0 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\di\Container.php(415): ReflectionClass->__construct('id')
#1 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\di\Container.php(358): yii\di\Container->getDependencies('id')
#2 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\di\Container.php(151): yii\di\Container->build('id', Array, Array)
#3 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\BaseYii.php(344): yii\di\Container->get('id', Array, Array)
#4 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\validators\Validator.php(204): yii\BaseYii::createObject(Array)
#5 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\base\Model.php(422): yii\validators\Validator::createValidator('id', Object(app\models\FormModel), Array, Array)
#6 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\base\Model.php(386): yii\base\Model->createValidators()
#7 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\base\Model.php(184): yii\base\Model->getValidators()
#8 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\base\Model.php(715): yii\base\Model->scenarios()
#9 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\base\Model.php(659): yii\base\Model->safeAttributes()
#10 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\base\Component.php(169): yii\base\Model->setAttributes(Array)
#11 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\db\BaseActiveRecord.php(266): yii\base\Component->__set('attributes', Array)
#12 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\controllers\FormController.php(25): yii\db\BaseActiveRecord->__set('attributes', Array)
#13 [internal function]: app\controllers\FormController->actionPost()
表单名称命名不符合yii规范,
改为url: "/form/post",
有错误
1.检查点击是否做ajax提交了
2.后台试着输出POST过去的数据,看看是不是你php代码有问题
$model=new FormModel();这个有东西么?