相关疑难解决方法(0)

主义2 +无符号值

是否可以unsigned integer在Doctrine 2中指定列类型?

php doctrine-orm

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

如何为Laravel/Eloquent模型设置默认属性值?

如果我尝试声明属性,像这样:

public $quantity = 9;
Run Code Online (Sandbox Code Playgroud)

...它不起作用,因为它不被视为"属性",而仅仅是模型类的属性.不仅如此,我还阻止访问实际存在的"数量"属性.

那我该怎么办?

php model laravel eloquent laravel-4

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

使用YML设置实体字段默认值

我需要在类文件中获取默认值

private $example_field = 0;
Run Code Online (Sandbox Code Playgroud)

当我用这个

example_field:
    options:
        default: 0
Run Code Online (Sandbox Code Playgroud)

我有默认的数据库值,但是当我试图坚持而没有设置"su"时我得到了错误(列'su'不能为null).

无论如何,

example_field:
    default: 0
Run Code Online (Sandbox Code Playgroud)

什么也没做.

php yaml doctrine-orm

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

使用默认值将NULL插入NOT NULL列

对于一些背景知识,我们使用Zend Framework 2Doctrine.Doctrine将始终插入NULL我们自己不填充的值.通常这可以,就好像字段有默认值,然后它应该使用此默认值填充字段.

对于我们运行MySQL 5.6.16的服务器之一,下面的查询运行并执行正常.虽然NULL被插入到不可为空的字段中,但MySQL会在插入时使用其默认值填充该字段.

在我们运行MySQL 5.6.20的另一台服务器上,我们运行下面的查询,它会因为抱怨'field_with_default_value'不能为空而失败.

INSERT INTO table_name(id, field, field_with_default_value) 
VALUES(id_value, field_value, NULL);
Run Code Online (Sandbox Code Playgroud)

Doctrine本身不支持将"DEFAULT"传递给它构建的查询,因此这不是一个选项.我认为这必须是一个MySQL服务器的东西,看起来好像它在一个版本但不是另一个版本中工作正常,但不幸的是我不知道这可能是什么.我们的SQL模式在两个服务器上都是相同的('NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION').

我应该提一下,如果我实际在Workbench中运行上面的SQL,它仍然无法以相同的方式工作.所以这不是一个真正的Doctrine问题,但绝对是某种类型的MySQL问题.

任何有关这方面的帮助将不胜感激.

php mysql default-value doctrine-orm zend-framework2

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