我们可以在控制器中把成员属性"public $enableCsrfValidation = false;"禁用。...php namespace app\controllers; use app\models\Article; use yii\db\ActiveQuery; use yii\web\Controller...ActiveQuery成员方法简介 方法名 返回值类型 描述 select() yii\db\Query 指定SQL语句当中的SELECT子句 from() yii\db\Query 指定SQL语句当中的...子句 offset() yii\db\Query 指定SQL语句当中的OFFSET子句 orderBy() yii\db\Query 指定SQL语句当中的ORDERBY子句 union() yii\db...where()成员方法属于yii\db\ActiveQuery的父类yii\db\Query。
Yii提供了一组封装了分页和排序数据提供程序类。数据提供者实现了 yii\data\DataProviderInterface 接口。它支持检索排序和分页数据。数据提供者通常是窗口小部件一起使用。...Yii 包括: ActiveDataProvider − 使用 yii\db\ActiveQuery 或 yii\db\Query 来从数据库中查询数据。...您可以通过配置分页和排序的属性来定义数据提供者的排序和分页的行为。...数据窗口小部件,如:yii\grid\GridView,它有一个 dataProvider 属性,它需要一个数据提供者实例,并在屏幕上显示的数据。...public function actionTest() { $count = Yii::$app->db->createCommand('SELECT COUNT(*) FROM user')
Yii::$app->db->createCommand()->delete('user', 'id = 3')->execute(); 获取结果方法 获取所有数据(数组形式返回) Yii...::$app->db->createCommand("SELECT * FROM `user`")->queryAll(); 获取一条数据(一维数组) Yii::$app->db->createCommand...("SELECT * FROM `user` WHERE id = 1")->queryOne(); 获取一个值 Yii::$app->db->createCommand("SELECT count...(*) AS total FROM `user` WHERE id = 1")->queryScalar(); 获取某一列(放到一位数组中) Yii::$app->db->createCommand...(); 检查一个数据库中是否含有某个表 (new \yii\db\Query)->from('user')->exists(); 获取count $query->count();
\db\Query or its subclasses....意思是query属性必须是实现QueryInterface的类的实例,例如使用yii\db\Query或者yii\db\ActiveQuery,所以不能用这个去渲染数据到页面上 查看了一下手册,发现有一个...yii\data\ArrayDataProvider类,将一个大的数组依据分页和排序规格返回一部分数据 use yii\data\ArrayDataProvider; $provider = new...pageSize' => 15, ], 'sort' => [ 'attributes' => ['nums'], ], ]); 应该指定 allModels 属性作为一个大的数组...原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:Yii2框架踩坑记录-数组数据渲染到后台页面带分页
给用户表起别名m /** * 获取用户信息 * @return \yii\db\ActiveQuery */ public function getUserInfo() { return
报错:Getting unknown property: yii\db\ActiveQuery::name Are you sure that you are getting field from ActiveRecord...and not ActiveQuery?
var_dump($customer->orders); //如果以属性的方式调用,会直接返回模型的结果 var_dump($customer->bigOrders); //关联数据中价格大于100...的订单, var_dump($customer->getBigOrders(200)->all()); //关联数据中价格大于200的订单,如果以函数的方式调用,会返回一个 ActiveQuery 对象...2.使用with() with例子 // 在SQL中一次性级联查询,调用相关数据,都直接在查询出来的数据中直接获取 // 查询客户与他们的订单和国家 $customerList = CustomerModel...查询一个客户大于100的订单,可使用ActiveQuery方式 //首先执行sql: SELECT * FROM customer WHERE id=1 $customer = Customer::findOne...public function saveWithTrans() { $transaction = Yii::$app->db->beginTransaction(); $error =
User::find() ->where(new yii\db\Expression('FIND_IN_SET(:status, status)')) ->addParams([':status...$id = Yii::$app->request->get('id'); $collection = Yii::$app->db->cache(function (Connection $db) use...::$app->response->setDownloadHeaders($model->downUrl); } 模型的downurl属性可以通过 extraFields()进行设置。...); // 方法二 return (new SecondController('second', Yii::$app->module))->runAction('index', $data); 获取GET...数据 Yii::$app->getRequest->get('id'); // 效率更高 Yii::$app->getRequest()->get('id'); ---- 视图中获取当前模块/控制器/方法
\db\ActiveRecord ,重写attributes() 方法,主要功能: 验证规则可从对象外部进行设置。...从验证规则中获取可赋值的属性。 <?...php namespace common\models\app; use yii\db\ActiveRecord; class ParamsValidateModel extends ActiveRecord...public function rules() { return $this- _rules; } // 设置可用属性列表 public function attributes...使用魔术方法获取参数验证模型 中的验证错误消息。 <?
容器会尝试获取它所依赖的类或接口的实例,然后通过构造器将其注入新的对象。...(Setter and Property Injection) Setter 和属性注入是通过配置提供支持的。...注册一个别名 $container = new \yii\di\Container; $container->set('foo', 'yii\db\Connection'); // 创建一个 Connection...$age; }); echo Container::get('sayTinywan', [24]); Yii2.0 注册一个 PHP 回调 // 每次调用 $container->get('db')...$container->set('db', function ($container, $params, $config) { return new \yii\db\Connection($config
容器会尝试获取它所依赖的类或接口的实例, 然后通过构造器将其注入新的对象。...(Setter and Property Injection) Setter 和属性注入是通过配置提供支持的。...注册一个别名 $container = new \yii\di\Container; $container->set('foo', 'yii\db\Connection');...get('db') 时,回调函数都会被执行。...$container->set('db', function ($container, $params, $config) { return new \yii\db\Connection
php namespace app\models; use yii\base\Model; use yii\db\ActiveRecord; class reg extends ActiveRecord...white-space:pre"> //因为没有验证啥的,所以这里没有代码 //这里不能写和数据库中表的字段一致的属性...,否则会在控制器中显示数据库内容时,显示这里的属性值,而不是数据库的内容值 //eg:public $name; }...::$app->request->post()) { //获取用户输入的值...php use yii\helpers\Html; ?
也可以改写Yii::$app->defaultRoute属性。...我们用一个在models文件夹中的Operation.class里Operation类来继承yii\db\ActiveRecord来操作Operation表。...model的属性定义是其核心,由于默认定义魔术方法get/set,所以可以直接在model外调用$modle->attr='value',对模型的属性进行获取/赋值。...方法为: $res=(new yii\db\Query())->select()->from()->leftJoin()->where->()->all(); 其中where语句较为复杂: where(...5.yii模型属性转数组 YII用toArray()方法可以将模型的属性转换为数组进行输出,可独立使用,也可以在查询时用连续操作方式使用。
::$app->db->createCommand()->insert('user', [ 'name' => 'test', 'age' => 30, ])->execute...(); 批量插入数据 Yii::$app->db->createCommand()->batchInsert('user', ['name', 'age'], [ ['test01', 30..., ])->execute(); 二、修改 使用model::save()进行修改 $user = User::find()->where(['name'=>'test'])->one(); //获取...name等于test的模型 $user->age = 40; //修改age属性值 $user->save(); //保存 直接修改:修改用户test的年龄为40 $result = User::model...()->updateAll(['age'=>40],['name'=>'test']); 使用createCommand()修改 Yii::$app->db->createCommand()->update
access-token=xxxxxxxx, 由于大多数服务器都会保存请求参数到日志, 这种方式应主要用于JSONP 请求,因为它不能使用HTTP头来发送 access token OAuth 2 : 使用者从认证服务器上获取基于...migrate 配置 打开 api\config\main.php 配置 user 应用组件: 设置 identityClass 属性为哪个认证类 设置 enableSession 属性为 false...设置 enableAutoLogin 属性为 true 将 session 组件注释掉,或删掉 'user' => [ 'identityClass' => 'api\models\User'...; use yii\db\ActiveRecord; use yii\web\IdentityInterface; ... class User extends ActiveRecord implements...; use yii\base\NotSupportedException; use yii\behaviors\TimestampBehavior; use yii\db\ActiveRecord; use
类最终也继承了\yii\base\Object类,\yii\base\Object类是支持属性的,所以yii\web\Application类也支持属性(关于属性,可以参考我的另一篇博文:yii2之属性...,我们可以这样来访问:Yii::$app->db,这个Yii::$app就是yii应用实例,也就是\yii\web\Application类的实例,但是\yii\web\Application类和它的父类...、祖先类都找不到db这个属性啊。...哈哈,别忘了,php读取不到类属性的时候会调用魔术方法get(),所以开始查找\yii\web\Application继承关系最近的祖先类中的get()方法,最后在\yii\di\ServiceLocator...类中找到了,也就是说,Yii::$app->db最终会调用\yii\di\ServiceLocator类中的get()方法: public function get($name) { if ($this
获取url中的host信息: # http://localhost Yii::$app->request->getHostInfo() 获取url中的路径信息(不包含host和参数): Yii...r=news&id=1 Yii::$app->request->url 或者 Yii::$app->request->requestUri 获取完整url(含host以及参数): Yii::$app...Yii::app()->request->url 只想获取url中的参数部分: # r=news&id=1 Yii::$app->getRequest()->queryString 获取某个参数的值...Yii::$app->user->returnUrl; 获取Referer Yii::$app->request->headers['Referer'] 或者 Yii::$app->getRequest...\Logger; \Yii::getLogger()->log('User has been created', Logger::LEVEL_INFO); Yii2 获取接口传过来的 JSON 数据:
例如:从另一个数据库导入数据到现在的数据库 今天就探讨下,Yii2.0 如何连接多个数据库 配置 打开数据库配置文件 common\config\main-local.php,在原先的 db 配置项下面添加...db2(可随意取名字),配置第二个数据库的属性 'components' => [ 'db' => [ 'class' => 'yii\db\Connection',...' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=test2',...* * @property int $id * @property string $name */ class Test2 extends \yii\db\ActiveRecord {...() { return Yii::$app->get('db2'); } /** * {@inheritdoc} */ public
数据更新 当使用表单提交的数据进行更新数据库中的数据的时候 对于表单提交的数据,不能用yii\db\ActiveRecord::load()或yii\db\ActiveRechord::attributes...只能使用yii\db\ActiveRecord::属性名 = value,进行赋值,如下: ` $session = \Yii::$app->session; $res_1 = Work_experience...Work_experience::find()->where([‘uer_id’=>$session[‘user_id’]])->orderBy(‘date_begin’)->count(); if(\Yii...::$app->request->isAjax){ return $source_count; }elseif(\Yii::$app->request->isPost)...{ $res_2 = \Yii::$app->request->post(‘Work_experience’); foreach($res_2 as $index => $value){
yii 数据save后得到插入id $post->save(); //得到上次插入的Insert id $id = $post->attributes['id']; 如此很简单 yii获取ip地址 Yii...::app()->request->userHostAddress; yii execute后获取insert id $id = Yii::app()->db->getLastInsertID(); yii...获取get,post过来的数据 Yii::app()->request->getParam('id'); yii如何设置时区 可以在config/main.php 里'timeZone'=>'Asia/...yii如何获得上一页的url以返回 Yii::app()->request->urlReferrer; yii多对多关联条件 [html] view plaincopy $criteria->addInCondition...', 'levels'=>'error, warning', ) 同时在db组件中加入'enableProfiling'=>true,同时在这种情况下,可以用CDbConnection::getStats