『壹』 yii2 后台怎么直接用/admin
yii2访问权限默认由自带rbac组件管理需要自编写相应规则实现权限管理图形界面
yii2-adminrbac管理视化需要点几鼠标能设置简单规则
本教程软件版本及链接:yii2(v2.06,使用高级模板),yii2-admin(2.0)
yii2:
yii2-admin:
本文未涉及自定义规则yii2-admin菜单
假定已经安装yii2且数据库创建user表具体安装步骤见文档
使用composer安装yii2-admin
非windows环境:
php composer.phar require mdmsoft/yii2-admin "~2.0"
php composer.phar update
Windows:
composer require mdmsoft/yii2-admin "~2.0"
composer update
内网络环境复杂能安装间较间响应终止命令重试
配置yii2-admin运行环境
注意:yii2-admin配置common目录全局效导致控制台(console)命令报错
仅权限控制应用于frontend模块所配置写frontend目录
配置文件:frontend\config\main.php
return [
'moles' => [
'admin' => [
'class' => 'mdm\admin\Mole',
'layout' => 'left-menu',//yii2-admin导航菜单
]
...
],
...
'components' => [
...
'authManager' => [
'class' => 'yii\rbac\DbManager', // 使用数据库管理配置文件
]
],
'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
'site/*',//允许访问节点自行添加
'admin/*',//允许所访问admin节点及其节点
]
],
];
创建相应数据库表
控制台输入命令:
yii migrate --migrationPath=@mdm/admin/migrations
yii migrate --migrationPath=@yii/rbac/migrations
安装完
『贰』 yii2 怎么安装和使用PHPExcel
在yii2项目的根目录下的composer.json中的require那里加入
"phpoffice/phpexcel": "dev-develop"
然后使用终端(windows使用cmd)进入yii2项目目录
执行以下命令即可:
composer update
使用的话,就很简单,use导入phpexcel类,然后就可以使用了(具体使用请看文档)
『叁』 Yii框架有没有必要自己过滤html表单提交的数据
一般的开发框架都没有帮你过滤的···自己写验证吧··或者把验证写在过滤器里面··
『肆』 yii2 怎么批量删除
yii2 批量删除
删除数据(Deleting Data)
删除单行数据,首先获取与该行对应的 Active Record 实例,然后调用 yiidbActiveRecord::delete() 方法。
$customer=Customer::findOne(123);
$customer->delete();
你可以调用 yiidbActiveRecord::deleteAll() 方法删除多行甚至全部的数据。例如,
Customer::deleteAll(['status'=>Customer::STATUS_INACTIVE])
----------------------------------------------------------------------
提示:调用deleteAll()时要非常小心,因为如果在指定条件时出错, 它可能会完全擦除表中的所有数据。
『伍』 yii2 如何连接数据库
『陆』 yii2.0 全局变量怎么设置
首先说下$GLOBALS的作用域: php脚本的所有位置,或者require或者include的文件内,必须是同一个脚本内,如果你是两个无关联的脚本当然访问不到。 然后你要的是获取之前记录的页面链接: 存储$_SESSION好了,也比较安全
『柒』 Yii2框架操作数据库的方法分析【以mysql为例】
本文实例讲述了Yii2框架操作数据库的方法。分享给大家供大家参考,具体如下:
准备数据库
DROP
TABLE
IF
EXISTS
`pre_user`;
CREATE
TABLE
`pre_user`(
`id`
int(11)
AUTO_INCREMENT
PRIMARY
KEY,
`username`
varchar(255)
NOT
NULL,
`password`
varchar(32)
NOT
NULL
DEFAULT
'',
`password_hash`
varchar(255)
NOT
NULL
DEFAULT
'',
`email`
varchar(255)
NOT
NULL
DEFAULT
'',
`status`
smallint(6)
NOT
NULL
DEFAULT
10,
`created_at`
smallint(6)
NOT
NULL
DEFAULT
0,
`updated_at`
smallint(6)
NOT
NULL
DEFAULT
0
)ENGINE=InnoDB
DEFAULT
CHARSET=utf8mb4;
配置连接
config\db.php
<?php
return
[
'class'
=>
'yii\db\Connection',
'dsn'
=>
'mysql:host=localhost;dbname=yii2',
'username'
=>
'root',
'password'
=>
'root',
'charset'
=>
'utf8mb4',
'tablePrefix'
=>
'pre_'
];
查看数据库连接是否成功
控制器里打印:
var_mp(\Yii::$app->db);
怎么执行SQL语句?
增删改
//
接收表单的数据
$username
=
'jack';
$sql
=
"INSERT
INTO
{{%user}}
(username,status)
VALUES
(:username,:status)";
//
返回受影响行数
$row
=
\Yii::$app->db->createCommand($sql,['username'=>$username,'status'=>8])->execute();
//
获取自增ID
echo
\Yii::$app->db->getLastInsertID();
查询
$sql
=
"SELECT
*
FROM
{{%user}}
WHERE
id>:id";
//
查询结果是一个二维数组
$userArr
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryAll();
//
如果要查询一个
$user
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryOne();
//
如果要返回单值
//
例如
select
count(*)语句
$count
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryScalar();
echo
$count;
更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
您可能感兴趣的文章:Yii2.0高级框架数据库增删改查的一些操作Yii2——使用数据库操作汇总(增删查改、事务)Yii2数据库操作常用方法小结Yii2框架实现数据库常用操作总结Yii2实现跨mysql数据库关联查询排序功能代码Yii+MYSQL锁表防止并发情况下重复数据的方法Yii
连接、修改
MySQL
数据库及phpunit
测试连接Yii实现MySQL多数据库和读写分离实例分析Yii操作数据库实现动态获取表名的方法Yii操作数据库的3种方法
『捌』 yii2 布局设置
1、类级别设置
属性
设置布局 public $layout = 'login';
取消布局 public $layout = false;
2、方法级别
设置布局 $this->layout = 'login';
取消布局 $this->layout = false;
3、视图级别
设置布局 $this->context->layout = 'login';
取消布局 $this->context->layout = false;
注:什么都不设置为默认布局,读取views/layouts/main.php文件作为布局文件
『玖』 在Yii2.0 中怎么使用 sphinx 搜索
如何调用Sphinx
按上面配置,第5节点对数据库进行了索引,通过Sphinx自带的search(在bin/release目录)就可以在命令行进行搜索:
(搜索CGArt)
windows上:
search -c d:/sphinx/sphinx.conf CGArt
Linux上:
cd /usr/local/sphinx
./bin/search -c sphinx.conf CGArt
运行后,系统提示一堆信息:
....
....
words:
1. 'cgart': 36 documents, 189 hits
这个表示库中有36条记录符合要求,出现CGArt的有189处。应用程序如果想调用Sphinx,可以从两个方面:
一是通过Sphinx官方提供的API接口(接口有Python,Java,Php三种版本)
二是通过安装SphinxSE(具体见1.2部分),然后创建一个中介sphinxSE类型的表,再通过执行特定的SQL语句实现。
通过官方API调用Sphinx(以PHP为例)
在sphinx安装目录有一个API目录,里面有三个PHP文件:test.php,test2.php和sphinxapi.php。 sphinxapi.php是sphinx调用接口封装文件,test.php是一个在命令行下执行的查询例子文件,test2.php是一个生成摘要的 例子文件。
在命令下行运行test.php(Linux上没有API目录,需要从源程序包中复制api目录至/usr/local/sphinx)
Windows上:
D:\sphinx\bin\release>c:\php5.2\php.exe -c c:\php5.2\php.ini ..\..\api\test.php -i cgfinal CGartLinux上(php在/usr/local/php目录,sphinx.conf在/usr/local/sphinx目录):
cd /usr/local/sphinx
/usr/local/php/bin/php api/test.php -i cgfinal CGArtSphinx的API查询接口主要有这些内容(其实对照 一下sphinxapi.php就清楚了):
//创建Sphinx的客户端接口对象
$cl = new SphinxClient ();
//设置连接Sphinx主机名与端口
$cl->SetServer('localhost',3312);
//可选,为每一个全文检索字段设置权重,主要根据你在sql_query中定义的字段的顺序,Sphinx系统以后会调整,可以按字段名称来设定权重
$cl->SetWeights ( array ( 100, 1 ) );
//设定搜索模式,SPH_MATCH_ALL,SPH_MATCH_ANY,SPH_MATCH_BOOLEAN,SPH_MATCH_EXTENDED,SPH_MATCH_PHRASE
$cl->SetMatchMode(SPH_MATCH_ALL);
//设定过滤条件$attribute是属性名,相当于字段名(用SPH_MATCH_EXTENDED时),$value是值,$exclude是布尔型,
当为true时,相当于$attribute!=$value,默认值是false
$cl->SetFilter($attribute, $values, $exclude);
//设定group by
//根据分组方法,匹配的记录集被分流到不同的组,每个组都记录着组的匹配记录数以及根据当前排序方法本组中的最佳匹配记录。
//最后的结果集包含各组的一个最佳匹配记录,和匹配数量以及分组函数值
//结果集分组可以采用任意一个排序语句,包括文档的属性以及sphinx的下面几个内部属性
//@id--匹配文档ID
//@weight, @rank, @relevance--匹配权重
//@group--group by 函数值
//@count--组内记录数量
//$groupsort的默认排序方法是@group desc,就是按分组函数值大小倒序排列
$cl->SetGroupBy($attribute, $func, $groupsort);
//设定order by的内容,第一个参数是排序方法名,值有
// SPH_SORT_RELEVANCE,SPH_SORT_ATTR_DESC,SPH_SORT_ATTR_ASC,SPH_SORT_TIME_SEGMENTS,SPH_SORT_EXTENDED
//$sortby的值如"HITS desc"
$cl->SetSortMode(SPH_SORT_EXTENDED, $sortby);
//set count-distinct attribute for group-by queries,$distinct为字符串
$cl->SetGroupDistinct ( $distinct );
//相当于mysql的limit $offset,$limit
$cl->SetLimits($start,$limit)
//$q是查询的关键字,$index是索引名称,当等于*时表查询所有索引
『拾』 YII2高级版本前后台缓存问题求助
概述 这里只是简单讲一下用法,如果想更详细的了解,去看 官方手册 比较好。除了使用服务器端缓存外, Web 应用还可以利用客户端 缓存去节省相同页面内容的生成和传输时间。通过配置 yii\filters\HttpCache 过滤器,控制器操作渲染的内容就能 缓存在客户端。 示例说明 class TestController extends Controller{ // 该方法会在其他方法之前执行 public function behaviors() { // 声明缓存配置 return [ // 需要注意的这里是二维数组 [ 'class' => 'yii\filters\HttpCache', // 设置需要加载的缓存文件 'only' => ['index'], // 设置需要缓存的控制器 'lastModified' => function(){ // 设置 Last-Modified 头 return 1548922; }, 'etagSeed' => function (){ // 设置 ETag 头 return 'hello'; } ] ]; } public function actionIndex(){ return $this->renderPartial('index'); } public function actionT...