我目前正在通过webpack/babel在React应用程序中使用ES6.我正在使用索引文件来收集模块的所有组件并将其导出.不幸的是,这看起来像这样:
import Comp1_ from './Comp1.jsx';
import Comp2_ from './Comp2.jsx';
import Comp3_ from './Comp3.jsx';
export const Comp1 = Comp1_;
export const Comp2 = Comp2_;
export const Comp3 = Comp3_;
Run Code Online (Sandbox Code Playgroud)
所以我可以很好地从其他地方导入它,如下所示:
import { Comp1, Comp2, Comp3 } from './components';
Run Code Online (Sandbox Code Playgroud)
显然这不是一个非常好的解决方案,所以我想知道,如果有任何其他方式.我似乎无法直接导出导入的组件.
我有一个可以存储数字的数组,如01,01A,01B,02,2,当我使用PHPExcel获取此值时,例如,在01,02的情况下,它被移除'0'.为了解决这个问题,我尝试格式化这些值将存储在excel中的行,并将其设置为文本类型,就像在下面的代码中一样:
$objPHPExcel->setActiveSheetIndexByName('BlocksList');
$objPHPExcel->getActiveSheet()->fromArray($blockNames, null, 'A2');
$latestBLColumn = $objPHPExcel->getActiveSheet()->getHighestDataColumn();
$column = 'A';
$row = 1;
for ($column = 'A'; $column != $latestBLColumn; $column++) {
$objPHPExcel->getActiveSheet()->getStyle($column.$row)->getNumberFormat()->setFormatCode( PHPExcel_Style_NumberFormat::FORMAT_TEXT );
}
$objPHPExcel->getActiveSheet()->fromArray($blockNames, null, 'A1');
Run Code Online (Sandbox Code Playgroud)
所以,通过这样做,我得到数字,如01,01A,02,02B ......并将其存储在行A2中.我得到最高的列在条件For中使用此值.在这种情况下,我设置A范围内的第1行,直到最高列,形成文本.
我的模板已生成,所有数字都是文本格式,但问题是我认为当我使用" fromArray()"方法时,它会转换数组的数字,然后才能在excel中正确使用它.你知道我怎么能解决这个问题?
上下文: 我正在构建一个带有 next 及其多区域功能的门户。这允许我们让多个 NextJS 应用程序由不同的团队独立运行,但作为一个应用程序。
问题: 我需要确保所有区域中的页眉、导航和页脚保持一致。为此,我希望在一个地方有一个组件,并在各个区域之间共享它。
不幸的是,nextjs 尚未原生支持 webpack 模块联合,因此我们无法从中受益。
我正在寻找方法来了解使用此功能的人们如何处理共享组件。我的研究和想法仅限于一个解决方案:为我想要共享的组件创建 npm 模块,并将其导入到区域中,然后在区域中传递我需要的数据。这是有代价的:对于像页眉和页脚这样的组件,至少,当发布新版本的包时,我们需要确保所有区域都更新为相同的版本。所以......它并不完美,但似乎就是这样。
我尝试查看NextJS GitHub 讨论,但不幸的是,那里的社区似乎不太活跃(已经有人问过这个问题了,你能在那里找到的唯一答案是我的)。
我决定尝试在这里问这个问题,因为观众更广泛,如果有更好的想法,也许你们可以给我一些启发。
我正在生成一个excel模板,我正在使用4张,其中3张只用于存储数组中的数据.这些数据正在数据验证列表中使用,因此我将保护添加到仅用于存储数据的3张纸上,但我想知道是否可以隐藏它们,以便用户在下载模板时,将无法看到这些表格,他不需要知道存在.
可能吗?
我有点困惑PHPExcel的行为与我有一些文件.这些文件包含约.3000行数据,但根据PHPExcel,使用的最后一行是65535.我尝试从文件中删除几行并将它们粘贴到一个新文件中,但无济于事.无论是Excel5还是Excel2007格式,总是相同的结果.
有什么想法在这里找到错误?
码:
$cr=$xls->getActiveSheet()->getHighestRow();
$cn=PHPExcel_Cell::columnIndexFromString($xls->getActiveSheet()->getHighestColum??n());
for ($z=2; $z<=$cr; $z++) {
$class=($z%2)?"odd":"even";
?>
<tr class="<?php echo $class; ?>">
<?php for ($s=0; $s<$cn; $s++) {
$tmp=$xls->getActiveSheet()->getCellByColumnAndRow($s,$z)->getValue();?>
<td><?php echo $tmp; ?></td>
<?php } ?> </tr>
<?php } ?>
Run Code Online (Sandbox Code Playgroud) 如果输入字段为空,我正在使用javascript进行验证:
if($("#nu_username").val() == null || $("#nu_username").val() == ""){
do action...
}
Run Code Online (Sandbox Code Playgroud)
它运作良好,但我想知道使用这两个条件是否多余.你知道吗?
我正在使用PHPExcel生成一个用户可以下载的xls模板,并用他想要的数据填充它.众所周知,excel以数字格式保存日期.我正在使用此函数转换数据并返回时间戳:
public static function excelToTimestamp($excelDateTime, $isMacExcel=false) {
$myExcelBaseDate = $isMacExcel ? 24107 : 25569; // 1st jan 1904 or 1st jan 1900
if (!$isMacExcel && $excelDateTime < 60) {
// Adjust for the spurious 29-Feb-1900 (Day 60)
--$myExcelBaseDate;
}
// Perform conversion
if ($excelDateTime >= 1) {
$timestampDays = $excelDateTime - $myExcelBaseDate;
$timestamp = round($timestampDays * 86400);
if (($timestamp <= PHP_INT_MAX) && ($timestamp >= -PHP_INT_MAX)) {
$timestamp = intval($timestamp);
}
} else {
$hours = round($excelDateTime * 24);
$mins = …Run Code Online (Sandbox Code Playgroud) 我还在我的 ACL 项目中工作,我想对以下问题有一些想法:
我使用 MySQL 来存储我的用户、角色和权限。起初,我在我的 TABLE Roles 中创建了一个字段“parent_id”,我试图通过这个来管理每个用户的权限。这有点奏效,直到我意识到如果我添加一个新角色,管理层次结构和控制谁有权访问哪些资源真的很复杂。我做了一些搜索,我意识到使用关系数据库来处理层次结构真的很复杂,所以我放弃了使用层次结构。
我希望您能帮助找到管理用户创建的最佳解决方案:我有 4 个不同的用户:SuperAdmin、CustomerAdmin、Technician、client。例如,当我在页面中创建新用户时,我不想让技术人员创建类型为 CustomerAdmin 或 SuperAdmin 的新用户。
我想只让 SuperAdmin 创建一个新用户,但我的一个限制是我也必须让 CustomerAdmin 创建用户,也是技术人员。
试图更具说教性,超级管理员可以是我。客户管理员是我的客户,他有一家企业。在他的企业中,他可以创建两种类型的用户:技术人员和客户。
这只是一个例子,但如果我想创建一种新的角色,赋予他新的权限,我必须找到一种方法来拒绝他创建比他更强大的用户的权限。
我不确定我的问题是否客观,但欢迎任何可以与我讨论这个问题的人。
我有一个HTML表格,我正在构建一个编辑函数来更改此表中的字段.我希望您能找到一种方法来存储此字段中列出的数据的ID.事实上,我有一个具有所列数据的对象RoleName,在a里面<td>,我也想存储它的id,做类似的事情:
foreach ($accountUsers as $accountUser){
<td value="$accountUser->roleID">$accountUser->getRoleName()</td>
Run Code Online (Sandbox Code Playgroud)
问题是,这value不是一个属性td.我的约束是我必须继续使用该表.
我需要验证一个值是否在数组中,并且我正在使用php函数in_array().我发现当我发送给in_array()函数的数组由子数组组成时,它不起作用.无论如何都要对子阵列进行此验证吗?为了帮助您理解我的问题,我有以下代码:
$userIds = array();
foreach($accounts as $account){
$accounIds[] = $account->getId();
$userIds[] = AccountUserBeanHome::findAllIdsByAccountId($account->getId());
}
$userId = 225;
if (in_array($userId, $userIds, true)) {
do action...
}
Run Code Online (Sandbox Code Playgroud)
问题是数组$ userIds可能是这样的:
Array
(
[0] => Array
(
[0] => 225
[1] => 226
[2] => 227
[3] => 228
[4] => 229
[5] => 230
[6] => 340
[7] => 355
)
[1] => Array
(
[0] => 313
[1] => 314
[2] => 315
[3] => 316
[4] => …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现一个ACL,我想你的意见,哪个可能是最好的(更高性能)方式:
拒绝访问每个人并根据每个用户授予权限是否更好,或者默认情况下为每个人授予访问权限更好,并删除权限.
尝试更具体,想象我有3个用户:SuperAdmin,ClientAdmin,BasicMember.
该ClientAdmin管理员几乎相同的权限的超级管理员,如见在系统中注册的每个用户,但他不能做任何修改,只是"读".
此时,我创建了一个函数,其中列出了用户的所有权限,在每个资源中,我检查currentUserRole和授权执行如下操作:
$acl = $this->generateAcl($roleId, AclResourceBean::ENTER_DATA, 'read'));
Run Code Online (Sandbox Code Playgroud)
所以..我希望你的意见知道是否最好检查:如果他有权限,showAction!或者如果他没有许可,请执行hideAction.(例如:对于刚刚读过其他用户权限的ClientAdmin,我应该隐藏"编辑"按钮,还是总是隐藏它更好,如果他没有权限,则显示!
我正在将react-router-dom从v5升级到v6,代码库我还不完全熟悉,我很好奇如何替换以下代码:
const history = useHistory();
history.replace(url, params);
Run Code Online (Sandbox Code Playgroud)
在文档中,它们仅显示在存在 1 个参数的情况下您将执行的替换操作。所以如果我有:
history.replace(url)
Run Code Online (Sandbox Code Playgroud)
我会简单地做:
const navigate = useNavigate();
navigate(url, {replace: true})
Run Code Online (Sandbox Code Playgroud)
如何确保第二个参数与 useNavigate 挂钩一起保留?
我很想这样做:
const navigate = useNavigate();
navigate(url, params)
Run Code Online (Sandbox Code Playgroud)
或者
const navigate = useNavigate();
navigate(url, { state: params })
Run Code Online (Sandbox Code Playgroud)
怎样更换才不会造成影响呢?
php ×7
javascript ×4
phpexcel ×4
acl ×2
reactjs ×2
arrays ×1
babeljs ×1
ecmascript-6 ×1
formatting ×1
frontend ×1
html ×1
next.js ×1
rbac ×1
react-router ×1
validation ×1
webpack ×1