小编Geo*_*dis的帖子

Laravel 5使用不同的值更新多行

我一直在寻找解决方案,我希望有人已经解决了这个问题,或者有一些改进的好主意.

我正在使用Laravel 5,我遇到了需要使用新值更新许多行的情况.现在我正在为所有这些行做一个for循环来更新它们,我想优化它,这样我就不会运行很多sql查询.这是一个示例代码:

<?php

   //Well, the original code looks better than this, but the concept is the same

   $myrows = [0,1,2,3,4,5,6,7,8,9];
   $myvalues = [45,543,657,574,234,26457,2462,897,234,89032];

   for($i=0;$i<count($myrows);$i++) {
      MyClass::where('id', $myrows[$i])->update(['myColumn' => $myvalues[$i]]);
   }

?>
Run Code Online (Sandbox Code Playgroud)

显然,这将执行10个查询(相同数量的我想更新的行),但我想只有一个查询要做到这一点,对于优化的目的.我知道能够使用whereIn(...) - > update(...)同时更新许多行,但是使用此方法,您只能将所有行更新为相同的值,而不是像我的那样更新不同的行例.

在此先感谢您的帮助!

php mysql laravel

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

jQuery有条件地删除触发器

我想知道Javascript或jQuery是否有办法删除事件监听器.假设我想创建一个我只想触发一次的函数,例如假设我想要一个按钮来显示文档中的一些隐藏元素,我会创建这个函数(假设隐藏元素有一个hidden隐藏的类他们):

jQuery('#toggler').click(function() {
    console.log('Hidden elements are now shown');
    jQuery('.hidden').removeClass('hidden');
});
Run Code Online (Sandbox Code Playgroud)

很简单吧?现在,我的实际问题进来了,我不希望jquery每次单击按钮时一次又一次地运行该函数,因为元素已经显示,所以有一个干净的方法吗?所以,在这个例子中多次点击切换器之后,我想只得到一个控制台消息.

我可以做jQuery(this).unbind('click'),但这会导致删除所有触发器,我只想删除当前触发器.

当我面对这样的场景时,我通常会做的就是解决它(这很丑陋,实际上并不会阻止代码执行,但只处理代码的结果):

var toggler_clicked = false;
jQuery('#toggler').click(function() {
    if(toggler_clicked) return;

    toggler_clicked = true;
    console.log('Hidden elements are now shown');
    jQuery('.hidden').removeClass('hidden');
});
Run Code Online (Sandbox Code Playgroud)

另外我不想使用jQuery one,因为当我需要有条件地删除触发器时我会遇到同样的问题,所以如果你能帮忙请给我一个动态的答案.

提前致谢 !

javascript jquery eventtrigger

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

CSS Bootstrap容器背景

我正在使用引导程序,我想知道为容器提供背景的一种干净方法。

我使用的是引导类container,没有container-fluid。Bootstrap文档明确指出我不应该嵌套容器,那么实现此目标的替代方法是什么?如果我将背景设置为container左右空白仍为白色,则我也想给该空间上色,但是我也希望内容以对齐方式container对齐,而不是container-fluid对齐方式。有什么建议么 ?我当前的解决方案是嵌套一个container内部,container-fluid并从第一个中删除填充,但是我想提出一个更好的解决方案,该解决方案不违反引导文档。

提前致谢 !

编辑

例如这是我所拥有的

<div class="container-fluid my-class">
    <div class="container">
        Some rows and columns here
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

然后我在CSS中覆盖bootstrap的填充

.container-fluid {
    padding-left: 0;
    padding-right: 0;
}

.my-class {
    background: red;
}
Run Code Online (Sandbox Code Playgroud)

但是,就像我说的那样,这是不好的方法。

html css css3

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

标签 统计

css ×1

css3 ×1

eventtrigger ×1

html ×1

javascript ×1

jquery ×1

laravel ×1

mysql ×1

php ×1