|-原 最完整的安装教程-Yii Gridview小部件之kartik-v/yii2-grid扩展的安装和使用,解决错误Error Class "kartik\base\Lib" not found(2022年5月)
kartik-v/yii2-grid 使用时报错
Error Class "kartik\base\Lib" not found
1. in .../vendor/kartik-v/yii2-grid/src/ColumnTrait.php
kartik-v/yii2-grid 使用时报错 Error Class "kartik\base\Lib" not found 1. in .../vendor/kartik-v/yii2-grid/src/ColumnTrait.php,要去单独安装下composer require kartik-v/yii2-krajee-base "dev-master"
先安装 kartik-v/yii2-grid 依赖的扩展
composer require kartik-v/yii2-krajee-base "dev-master"
之后是根据你的项目bootstrap的版本安装对应的,如果没有安装的话,安装下Yii2的bootrstarp
composer require --prefer-dist yiisoft/yii2-bootstrap
安装必要的依赖扩展,kartik依赖于bootstrap的扩展
Install the necessary pre-requisite
(Krajee Dropdown Extension) based on your bootstrap version:
For Bootstrap v5.x install the extension kartik-v/yii2-bootstrap5-dropdown For Bootstrap v4.x install the extension kartik-v/yii2-bootstrap4-dropdown For Bootstrap v3.x install the extension kartik-v/yii2-dropdown-x
例如你是bootstrap v3.x ,如何识别bootstrap版本?
composer require kartik-v/yii2-dropdown-x "@dev"
之后就是gridview了
composer require kartik-v/yii2-grid "@dev"
为了使用表格直接编辑等等功能安装 ...
|-转 【坑,勿用】Yii的yii-xunsearch扩展,支持中文的搜索引擎,支持全文索引全文搜索
太差了,Yii的yii-xunsearch扩展,支持中文的搜索引擎,支持全文索引全文搜索,注意有分Yii-1.x 用法,Yii-2.x 用法 ,推荐用Yii2或者更高的版本做项目。
支持Yii1和Yii2 20200406
https://www.yiiframework.com/extension/yii-xunsearch
yii-xunsearch
xunsearch php sdk, yii1 extension and yii2 ActiveRecord support
Composer 支持ResourcesComposer 支持
自 v1.4.9 起,通过 subtree 功能将 xs-sdk-php 分离成为一个只读的子仓库, 以支持通过composer安装。我们的包名称为hightman/xunsearch
,内含全部 PHP-SDK 的库文件,还包括支持 Yii 的扩展类。
安装
和绝大多数 composer 一样,你可以通过以下两种方法中的任意一种安装。
可以直接运行
composer require --prefer-dist hightman/xunsearch "*@beta"
或者将以下内容添加到您的项目根目录composer.json
中的require
章节, 然后运行composer install
"hightman/xunsearch": "*@beta"
Tip:如果您打算用代码仓库中的最新版本,请将星号改为 dev-master。
命令行工具
vendor/bin/xs help
Yii-1.x 用法
这是对 xunsearch 的一个简单封装,使之更适合 yii-1.x 的用法习惯。首先, 在应用入口文件最开头引入 composer 的 autoload 文件,通常是 index.php。
require_once 'vendor/autoload.php';
// 如有必要请定义常量 XS_APP_ROOT 表示项目文件存放路径
//define ('XS_APP_ROOT', dirname(__FILE__) . '/protected/data');
在应用配置文件的compnents
中添加以下代码,通常是 protected/config/main.php
// application components
'components' => array(
// ... other components ...
'search' => array(
'class' => 'EXunSearch',
'project' => 'demo', // 搜索项目名称或对应的 ini 文件路径
'charset' => 'utf-8', // 您当前使用的字符集(索引、搜索结果)
),
),
然后就可以通过Yii::app()->search
来访问EXunSearch
对象,进行索引管理或检索。
添加、修改索引数据,使用方法参照XSIndex。 对于 ActiveRecord 对象来讲,建议在相关的afterSave
和afterDelete
中进行索引同步。
$data = array('pid' => 1234, 'subject' => '标题', 'message' => '内容');
Yii::app()->search->add($data); // 添加文档
Yii::app()->search->update($data); // 更新文档
Yii::app()->search->del('1234'); // 删除文档
使用检索功能时,可以将Yii::app()->search
当作XSSearch对象一样直接使用它的全部方法。
Yii::app()->search->setQuery('subject:标题');
$docs = Yii::app()->search->setLimit(5, 10)->search(); // 取得搜索结果文档集
Yii-2.x 用法
在 yii2 中,除了提供类似 yii-1.x 的调用方式外,我们还支持 ActiveRecord 方式来操作。首先, 请在应用配置文件的components
中添加以下代码,通常是config/web.php
...
|-转 简单,易用的yii2导入和导出组件( illusion/yii2-excel)
Uncaught TypeError: last.size is not a function
先来说说写这个组件的初衷,接触yii2不是很久,在项目中刚好有这样一个excel导入导出的需求,筛选了多个组件, 但不是停止维护就是弃用,好不容易找到了一个可用的官方组件 phpoffice/phpspreadsheet,但是有点使用复杂,中文文档很少,但是不可否认这个组件功能很全面,代码质量比之前的phpExcel高出不少,于是就产生了写illusion/yii2-excel 组件的想法,让导入和导出excel这件事情变得更新简单、易于上手,让大家的时间集中在创新和业务上面。最终就在读了 phpoffice/phpspreadsheet 的代码后,基于该组件写出现在的 illusion/yii2-excel 组件,希望大家能喜欢,同时,有什么使用不方便的地方或者代码方面的bug,欢迎大家提出建议或者贡献代码。
上面是原文的内容,打算回去亲测下
0
下载:composer require illusion/yii2-excel
1.2.0 (下面的代码示例,仅仅适用于1.2.0及1.2.0以下版本,若 使用最新版本,请参考https://packagist.org/packages/illusion/yii2-excel) 使用示例:
return [
'components' => [
'excel' => [
'class' => 'illusion\excel\Excel',
],
],
];
`` SAMPLE CODE LINKhttps://github.com/lkq0929/illusion-excel/tree/master/exampleNOTICE 目前只支持csv、xls、xlsx三种电子表格的导出和导入 SAMPLE CODE
<?php /**
- Created by PhpStorm. *
- Auth: lkqlink@163.com
- Date: 2018/8/27
- Time: 14:28 */
namespace app\controllers;
use yii\rest\Controller; use yii\web\UploadedFile;
class ExampleController extends Controller {
/**
* 单电子表(sheet)、多电子表格导出
* 导出文件可直接浏览器下载或保存至服务器
*/
public function actionExport()
{
/*单电子表的电子表格--数据格式
$cellData = [
['部门', '组别', '姓名', '性别'],
['一米技术部', 'oms', 'illusion', '男'],
['一米技术部', 'oms', 'alex', '男'],
['一米技术部', 'pms', 'aaron', '女']
];*/
/*多电子表的电子表格--数据格式*/
$cellData = [
'one' => [
['部门', '组别', '姓名', '性别'],
['一米技术部', 'oms', 'illusion', '男'],
['一米技术部', 'oms', 'alex', '男'],
['一米技术部', 'pms', 'aaron', '女']
],
'two' => [
['类别', '名称', '价格'],
['文学类', '读者', '¥5'],
['科技类', 'AI之人工智能', '¥100'],
['科技类', '物联网起源', '¥500']
],
];
$spreadsheet = \Yii::$app->excel->createSpreadSheet('xls'); // 'xls' 自定义电子表格后缀
$spreadsheet->write($cellData);
$spreadsheet->download('department'); //'department' 自定义电子表格名
}
/**
* 读出电子表格的原生数据并根据自定义属性名装换成对应格式
* 然后根据你喜欢的方式将数据插入数据表
*
* @return array
*/
public function actionImport()
{
$transData = [];
$attributes = [
'department' => ['department', 'group', 'name', 'sex'], //'department' 工作表(sheet)名 键值:['department', 'group', 'name', 'sex']列对应的名称,名称顺序必须一致
'book' => ['category', 'book_name', 'price'],
];
if (\Yii::$app->request->isPost) {
$importFile = UploadedFile::getInstanceByName('file');
}
$fileName = explode('.', $importFile->name);
$spreadsheet = \Yii::$app->excel->createSpreadSheet($fileName[1]); // $fileName[1] 自定义电子表格后缀
$rawDatas = $spreadsheet->read($importFile->tempName); //$importFile->tempName 电子表(excel)路径
foreach ($rawDatas as $sheetName => $rawData) {
$transData[] = $spreadsheet->columnTo($rawData, $attributes[$sheetName]); //$rawData 读出的单个工作表(sheet)的原生数据,$attributes[$sheetName] $rawData电子表格中列按照顺序对应的自定义列名
}
return $transData;
}
/**
* 读出电子表格的原生数据
* 根据喜欢的方式插入数据表
*
* @return mixed
*/
public function actionImportRaw()
{
if (\Yii::$app->request->isPost) {
$importFile = UploadedFile::getInstanceByName('file');
}
$fileName = explode('.', $importFile->name);
$spreadsheet = \Yii::$app->excel->createSpreadSheet($fileName[1]); //同上注释
$rawDatas = $spreadsheet->read($importFile->tempName);
return $rawDatas;
}
}...