我想了解如何使用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) 我有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'
我在这里错过了什么?
什么是防止空字符串插入MySQL的InnoDB表的字段的最佳方法?允许的值是字符数大于零的字符串或NULL.
我问这是因为ActiveRecord模型对象经常加载了视图的表单数据,这些表单数据不知道,因此不会发送NULL值.在这种情况下,我宁愿存储NULL而不是空字符串.
我应该定义规则吗?我应该实施一个二传手吗?使用扳机?
好吧,我刚开始使用 emmet 脚本/编码。所以我发现你可以很容易地生成lorem ipsum
div>lorem20
Run Code Online (Sandbox Code Playgroud)
我唯一遇到的问题是我使用了很多 lorem ipsum,页面上的所有内容都以lorem ipsum. 我试着看看是否有办法说我想要 lorem ipsum 但不是从 lorem ipsum 开始,我找不到这个问题的任何答案。
所以问题是,我可以用 emmet 轻松生成 lorem ipsum 但不要让它以 lorem ipsum 开头。(我知道我可以删除它,但这会浪费语法
在Yii 2指南中说:
虽然不是必需的,但建议您将RESTful API开发为单独的应用程序,与Web前端和后端不同,以便于维护.
这是什么意思?这是一个完全不同的应用程序,还是可以与"普通"Web应用程序位于同一文件夹中?我刚开始使用我的应用程序,所以我可以或多或少地轻松改变.但我想知道:如果我要创建另一个应用程序而不是我的业务逻辑将无法访问.
为什么以及如何创建另一个应用程序?什么时候不需要?
我有一个版本控制系统(例如Subversion),现在我想建立一个构建过程.现在我必须创建一个版本号并将其插入到系统中.但版本号来自何处?假设我想使用这个常见的<major>.<minor>.<bugfix/revision>方案.我应该将数字传递给构建脚本吗?或者我应该传递像increaseMajor,increaseMinor,increaseRevision这样的参数?或者,您是否建议使用构建脚本检测到的编号创建分支?
我可以想象主要和次要版本号必须手动放在某处.修订号可以自动增加.但我仍然不知道我将把主要和次要数字放在哪里.
在我的情况下,我有一些我想要压缩的php文件,但在我必须将一些版本号插入到php文件之前.
我编辑了这篇文章,试图让我的要求更加清晰:
我不使用Subversion,这只是一个例子.我不想讨论版本号方案.
想象一下,我想创建3.5.0或3.5.1版本.我会将此版本号传递给构建脚本吗?脚本是否会使用此编号在存储库中创建分支,还是希望有人已创建此分支?手动?或者构建脚本是否会查找分支的名称(例如'3.5.1)并将其用于其他内容?版本号是来自我的大脑还是自动创建(我猜它来自我的小脑和修订版号的主要/次要编号是否已创建)?或者您将数字放入可能插入存储库的文件中?
我想如果使用发布管理工具我会在那里插入版本号.但是我还没用.
我不确定这是否仅限于Yii2,或者它是否也可以与其他框架或甚至一般性讨论.
在Yii2中,我可以在模型对象上调用validate().这将返回true或false.如果为false,我可以调用getErrors()来查看此对象中当前存在哪些验证问题.
为什么这种行为以这种方式实现?为什么validate()不会抛出一些ValidationExceptions?我发现错误也是模型对象的一部分.为什么他们不属于这种例外?
这种实现的优点是什么?为什么这样做?我更喜欢例外.有了这个,我可以更好地区分所需的和特殊的处理.所有不需要的东西都在catch块中处理.期望发生在try块中.这不是个好主意吗?
我根据本指南设置了一个基本应用程序(安装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但是得到了例外:
Run Code Online (Sandbox Code Playgroud)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.
这是一种错误的做法吗?
我想知道如何将JS库添加到项目中.我只知道我必须稍后将它添加到资产中,但是目前我无法获得JS文件.
*托管正确的术语?
使用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) yii2 ×7
php ×3
activerecord ×2
gridview ×2
mysql ×2
validation ×2
api ×1
composer-php ×1
emmet ×1
javascript ×1
lorem-ipsum ×1
model ×1
npm ×1
phpexcel ×1
rest ×1
sql ×1
union ×1
yii ×1