小编Joh*_*ith的帖子

在SQL中,两个表是否可以相互引用?

在此系统中,我们存储产品,产品图像(产品可能有许多图像),以及产品的默认图像.数据库:

CREATE TABLE  `products` (
  `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `NAME` varchar(255) NOT NULL,
  `DESCRIPTION` text NOT NULL,
  `ENABLED` tinyint(1) NOT NULL DEFAULT '1',
  `DATEADDED` datetime NOT NULL,
  `DEFAULT_PICTURE_ID` int(10) unsigned DEFAULT NULL,
  PRIMARY KEY (`ID`),
  KEY `Index_2` (`DATEADDED`),
  KEY `FK_products_1` (`DEFAULT_PICTURE_ID`),
  CONSTRAINT `FK_products_1` FOREIGN KEY (`DEFAULT_PICTURE_ID`) REFERENCES `products_pictures` (`ID`) ON DELETE SET NULL ON UPDATE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8;


CREATE TABLE  `products_pictures` (
  `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `IMG_PATH` varchar(255) NOT NULL,
  `PRODUCT_ID` int(10) …
Run Code Online (Sandbox Code Playgroud)

mysql database database-design

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

将图标放在表单中的输入元素内(而不是背景图像!)

我想完全按照这里要求做的事情:

将图标放在表单中的input元素内

除了我希望图标右对齐.

"背景"解决方法不起作用,因为这些图像必须是可点击的!所以一定是IMG.

我怎样才能做到这一点?

html css forms icons input

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

Phpunit,如何测试方法是否"无"?

class Testme()
{
    public function testMe ($a)
    {
        if ($a == 1)
        {
            throw new Exception ('YAY');
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以它很容易测试,如果它抛出异常

/**
 * @expectedException Exception
 */
public function test()
{
    new Testme(1);
}
Run Code Online (Sandbox Code Playgroud)

但如果什么都没做呢?

public function test()
{
    new Testme(2);
 ?? ? ? ? ?
}
Run Code Online (Sandbox Code Playgroud)

php phpunit

20
推荐指数
4
解决办法
5385
查看次数

jQuery,仅在用户自己更改输入时更改事件

我们可以检测用户是否更改了某些内容:

$('#item').change(function() { 
    alert('changed!');
});
Run Code Online (Sandbox Code Playgroud)

遗憾的是,有时我需要巧妙地称之为:$('#item').change()但在这种情况下,它也被视为"改变".有没有办法区分用户活动与手动活动?

javascript jquery event-handling

15
推荐指数
2
解决办法
7879
查看次数

如何从summernote编辑器获取纯文本?

例如,这是我输入的内容:

sdf
42342
xxcv
Run Code Online (Sandbox Code Playgroud)

.code() 将其转换为 sdf<br>42342<br>xxcv

或另一件事:

[{"_type":"ServerOperation","operationType":"ANNOUNCE"}]
Run Code Online (Sandbox Code Playgroud)

becames

<span class="message_content">[{"_type":"ServerOperation","operationType":"ANNOUNCE"}]</span>
Run Code Online (Sandbox Code Playgroud)

如何获得纯文本/纯文本?

html css jquery summernote

14
推荐指数
3
解决办法
3万
查看次数

Javascript将onclick事件附加到所有链接

我想在网站的每个链接上附加一个函数来更改参数.

如果没有jQuery,我怎么能这样做?

如何遍历每个链接(可能是一个DOM项)并调用它们上的函数?

javascript events

13
推荐指数
3
解决办法
3万
查看次数

当--coverage-html时,Phpunit非常慢

我正在使用Phpunit.如果我只是运行我的测试:

phpunit --log-junit output.xml

这在一秒钟内运行.但如果我想要代码覆盖:

phpunit --coverage-html ./report --log-junit output.xml

然后非常慢,phpunit发送"从* .xml 读取配置"并挂起一分钟,然后开始执行测试

php xml phpunit

8
推荐指数
3
解决办法
5891
查看次数

工厂方法可能违反得墨忒耳法?

引用自:https://en.wikipedia.org/wiki/Law_of_Demeter

更正式地说,函数的Demeter法则要求对象O的方法m只能调用以下类型的对象的方法:[2]

  • O本身

  • m的参数

  • 在m中创建/实例化的任何对象

  • O的直接组件对象

  • 一个全局变量,可由O访问,范围为m

特别是,对象应该避免调用另一个方法返回的成员对象的方法

所以详细说明:

class O
{
    private $c;
    public function m($obj1)
    {
        $this->a(); // OK
        $obj1->a(); // OK
        (new C())->a(); // OK
        $c->a(); // OK
        $a = function() { };
        $a(); // OK
    }

    private function a() {}
}
Run Code Online (Sandbox Code Playgroud)

现在第3条法律值得怀疑.所以我新创建了一个对象.但如果我而不是:

(new C())->a();
Run Code Online (Sandbox Code Playgroud)

我做:

$this->factory->createC()->a();
Run Code Online (Sandbox Code Playgroud)

它还有效吗?一个普通的课程被实例化,只是new一个工厂而已.但是嘿!该法律说:

特别是,对象应该避免调用另一个方法返回的成员对象的方法

按此规则,工厂方法失败!怎么办?它真的失败了吗?

php oop factory law-of-demeter

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

为什么在尝试分配对属性对象的引用时会调用 __get() 魔术方法?

class Test
{
    public $prop1;
    public function __get(string $n)
    {
        echo '__GET: '.$n.' - but why?<br>';
        die;
    }
}

$t = new Test();
$x1 = new \stdClass();
$t->prop2 = &$x1;
echo '.';
die;
Run Code Online (Sandbox Code Playgroud)

https://onlinephp.io/c/f7f16

在这里您可以看到,我创建了一个stdClass对象,尝试将其传递给一个不存在的变量,然后__get()执行 - 尽管我只是尝试写入它,而不是读取它。如果我没有die()这样做,我就会得到Indirect modification of overloaded property has no effect例外。

如果我有这个(没有参考)

class Test
{
    public $prop1;
    public function __get(string $n)
    {
        echo '__GET: '.$n.' - but why?<br>';
        die;
    }
}

$t = new Test();
$x1 = new \stdClass(); …
Run Code Online (Sandbox Code Playgroud)

php reference getter-setter

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

为什么Firefox有时会缓存我的CSS和Javascript代码,即使它已经改变了?

在我的产品网站上,Firefox有时会"检测不到"我的CSS和Javascript代码中的更改.而是它加载旧版本,所以我似乎需要清除缓存.在这种情况下,我该怎么办?这与最新的Firefox(撰写本文时为16.0.1)有关.

编辑!

我忘了说localhost css文件的错误.我的意思是,这是一个旧的js文件,我更新它,上传它,并在产品服务器上firefox认为它是localhost文件.我包含文件的方式:

<link rel="stylesheet" href="/xyz.css" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

html css browser caching assets

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