小编rob*_*sch的帖子

当尝试通过PHP读取excel文件时,为什么会出现"无效或单元化的Zip对象"错误?

我想了解如何使用PHP 读取 excel文件.我的具体用例是在Yii中使用PHPExcel.

我已经遵循了许多教程,我总是陷入困境:"ZipArchive :: getFromName():Zip对象无效或单元化".我添加了扩展,加载器等,但似乎没有任何工作.有没有办法解决?还是我需要另一个图书馆?这是我的控制器中的代码.

Yii::import('application.vendors.PHPExcel.PHPExcel',true);
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load('c:\cctv.xls'); //$file --> your filepath and filename
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow(); // e.g. 10
$highestColumn = $objWorksheet->getHighestColumn(); // e.g 'F'
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); // e.g. 5
echo '<table>' . "\n";
for ($row = 2; $row <= $highestRow; ++$row) {
  echo '<tr>' . "\n";
  for ($col = 0; $col <= $highestColumnIndex; ++$col) {
    echo '<td>' . $objWorksheet->getCellByColumnAndRow($col, $row)->getValue() . '</td>' . "\n";
  }
  echo '</tr>' …
Run Code Online (Sandbox Code Playgroud)

phpexcel

8
推荐指数
2
解决办法
2万
查看次数

如何在Yii2 Active Record中使用JOIN作为关系模型?

我有2个名为Books and Reviews的表.Books表与Reviews有一对多的关系.

我想搜索书籍并按评论排序.

例如,如果有10本书可用且书籍已在评论中进行审核,那么我想通过使用WHERE子句查找所有书籍并计算评论,然后根据评论编号订购所有书籍.

我的SQL查询如下:

 Books::find()
   ->where([
     'and', 
     ['like', 'books.bookName', $bookName],
     ['like', 'books.status', 'Enabled'] 
    ])
  ->joinWith(['reviews' => function ($q){
        $q->select(['COUNT(*) as cnt']);
    }])
  ->orderBy(['cnt' => 'DESC'])
  ->all();
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误消息:

SQLSTATE [42S22]:未找到列:1054'order子句'中的未知列'cnt'

我在这里错过了什么?

php mysql activerecord yii2

8
推荐指数
1
解决办法
4万
查看次数

Yii2:防止ActiverRecord属性中的空字符串

什么是防止空字符串插入MySQL的InnoDB表的字段的最佳方法?允许的值是字符数大于零的字符串或NULL.

我问这是因为ActiveRecord模型对象经常加载了视图的表单数据,这些表单数据不知道,因此不会发送NULL值.在这种情况下,我宁愿存储NULL而不是空字符串.

我应该定义规则吗?我应该实施一个二传手吗?使用扳机?

mysql validation activerecord model yii2

8
推荐指数
1
解决办法
2351
查看次数

Emmet 编码 lorem ipsum,不以 lorem 开头

好吧,我刚开始使用 emmet 脚本/编码。所以我发现你可以很容易地生成lorem ipsum

div>lorem20
Run Code Online (Sandbox Code Playgroud)

我唯一遇到的问题是我使用了很多 lorem ipsum,页面上的所有内容都以lorem ipsum. 我试着看看是否有办法说我想要 lorem ipsum 但不是从 lorem ipsum 开始,我找不到这个问题的任何答案。

所以问题是,我可以用 emmet 轻松生成 lorem ipsum 但不要让它以 lorem ipsum 开头。(我知道我可以删除它,但这会浪费语法

lorem-ipsum emmet

7
推荐指数
1
解决办法
8323
查看次数

为什么要为RESTful API创建单独的应用程序?

在Yii 2指南中说:

虽然不是必需的,但建议您将RESTful API开发为单独的应用程序,与Web前端和后端不同,以便于维护.

来源:RESTful Web服务 - 快速入门

这是什么意思?这是一个完全不同的应用程序,还是可以与"普通"Web应用程序位于同一文件夹中?我刚开始使用我的应用程序,所以我可以或多或少地轻松改变.但我想知道:如果我要创建另一个应用程序而不是我的业务逻辑将无法访问.

为什么以及如何创建另一个应用程序?什么时候不需要?

api rest yii2

7
推荐指数
1
解决办法
8742
查看次数

版本号来自哪里?

我有一个版本控制系统(例如Subversion),现在我想建立一个构建过程.现在我必须创建一个版本号并将其插入到系统中.但版本号来自何处?假设我想使用这个常见的<major>.<minor>.<bugfix/revision>方案.我应该将数字传递给构建脚本吗?或者我应该传递像increaseMajor,increaseMinor,increaseRevision这样的参数?或者,您是否建议使用构建脚本检测到的编号创建分支?

我可以想象主要和次要版本号必须手动放在某处.修订号可以自动增加.但我仍然不知道我将把主要和次要数字放在哪里.

在我的情况下,我有一些我想要压缩的php文件,但在我必须将一些版本号插入到php文件之前.


我编辑了这篇文章,试图让我的要求更加清晰:

我不使用Subversion,这只是一个例子.我不想讨论版本号方案.

想象一下,我想创建3.5.0或3.5.1版本.我会将此版本号传递给构建脚本吗?脚本是否会使用此编号在存储库中创建分支,还是希望有人已创建此分支?手动?或者构建脚本是否会查找分支的名称(例如'3.5.1)并将其用于其他内容?版本号是来自我的大脑还是自动创建(我猜它来自我的小脑和修订版号的主要/次要编号是否已创建)?或者您将数字放入可能插入存储库的文件中?

我想如果使用发布管理工具我会在那里插入版本号.但是我还没用.

version-control version-numbering

6
推荐指数
1
解决办法
779
查看次数

Yii2:为什么验证错误不会抛出异常?

我不确定这是否仅限于Yii2,或者它是否也可以与其他框架或甚至一般性讨论.

在Yii2中,我可以在模型对象上调用validate().这将返回true或false.如果为false,我可以调用getErrors()来查看此对象中当前存在哪些验证问题.

为什么这种行为以这种方式实现?为什么validate()不会抛出一些ValidationExceptions?我发现错误也是模型对象的一部分.为什么他们不属于这种例外?

这种实现的优点是什么?为什么这样做?我更喜欢例外.有了这个,我可以更好地区分所需的和特殊的处理.所有不需要的东西都在catch块中处理.期望发生在try块中.这不是个好主意吗?

validation exception-handling yii yii2

6
推荐指数
1
解决办法
3398
查看次数

Yii2:如何通过composer添加JavaScript库?

我根据本指南设置了一个基本应用程序(安装Yii).这没问题.根据指南,我还将fxp/composer-asset-plugin全局添加到composer.phar.也没问题.

现在我已经要求使用q.js作为npm包托管*.但我不知道如何通过作曲家添加它.我知道我可以使用CDN代替,也可以手动下载和存储.但我更喜欢使用作曲家.那么我需要做些什么来完成这项工作呢?

我把它添加到我的composer.json:

"require": {
    "php": ">=5.4.0",
    "yiisoft/yii2": ">=2.0.4",
    "yiisoft/yii2-bootstrap": "*",
    "yiisoft/yii2-swiftmailer": "*",
    "npm-asset/q": "~1.4"               <------
},
Run Code Online (Sandbox Code Playgroud)

并且被叫composer.phar update但是得到了例外:

Your requirements could not be resolved to an installable set of packages.

    Problem 1
    - The requested package npm-asset/q could not be found in any version, 
      there may be a typo in the package name.
Run Code Online (Sandbox Code Playgroud)

这是一种错误的做法吗?

我想知道如何将JS库添加到项目中.我只知道我必须稍后将它添加到资产中,但是目前我无法获得JS文件.

*托管正确的术语?

javascript npm composer-php yii2

6
推荐指数
1
解决办法
2867
查看次数

Yii2:如何使用联合查询和排序创建ActiveDataProvider?

使用Yii framework 2.0,我有两个数据库表如下.

A table:
   a_id = 1, name = yes, number = 123
   a_id = 2, name = no, number = 456 
   a_id = 3, name = ok,  number = 683

B table:
  id = 1, a_id = 1, firstname = s
  id = 2, a_id = 1, firstname = y
  id = 3, a_id = 2, firstname = e
  id = 4, a_id = 2, firstname = x
  id = 5, a_id = 2, firstname = t
  id …
Run Code Online (Sandbox Code Playgroud)

php sql union gridview yii2

6
推荐指数
2
解决办法
2万
查看次数

使用Yii2过滤占位符

有谁知道如何在Yii2框架的Gridview过滤器上实现占位符或工具提示?我需要一些让用户高兴的东西,让他们知道文本框实际上是一个搜索过滤器.

期待听到回复.

预习

php gridview yii2

6
推荐指数
1
解决办法
3547
查看次数