我有一个文章模型,文章可以用英语和阿拉伯语两种语言书写。
因此每种语言文本都有2个属性,我希望在创建和更新时允许两个属性为空,因为知道属性类型是文本而不是varchar。
我如何为我需要的东西编写规则?
答案 0 :(得分:0)
https://www.parse.com/docs/android/guide#objects-subclasses
class MyBufferedInputStreamSpec extends UnitSpec {
"Buffer size" should "be overridable and 4" in {
new MyBufferedInputStream(newInputStream("abc"), 4).bufferSize should be(4)
}
"Buffered Stream" should "read data twice into buffer when bufferSize is smaller than number of bytes available" in {
val str = new MyBufferedInputStream(newInputStream("abc"), 2) with ConsoleLogger with TimestampLogger
str.readBuffered() should be('a')
str.readBuffered() should be('b')
str.readBuffered() should be('c')
str.readBuffered() should be(-1)
}
"Buffered Stream" should "read data once into buffer when bufferSize is larger than number of bytes available" in {
val str = new MyBufferedInputStream(newInputStream("abc"), 4) with ConsoleLogger with TimestampLogger
str.readBuffered() should be('a')
str.readBuffered() should be('b')
str.readBuffered() should be('c')
str.readBuffered() should be(-1)
}
private def newInputStream(str: String) = {
new ByteArrayInputStream(str.getBytes(UTF_8))
}
}
答案 1 :(得分:0)
从数据库表生成模型时,yii在rule()
函数中添加了类似的内容:
array('field1, field2, ...', 'required')
此数组基于数据库列中的NOT NULL
属性。这意味着,如果数据库字段具有NOT NULL
属性已检查,则yi将其添加到上面的数组中。您需要做的就是从上面的数组中删除两个字段。
答案 2 :(得分:0)
我不确定你的意思" ...知道属性类型是文本而不是varchar ..."但是Yii已经内置了定义验证规则的机制。
有关详细信息,请参阅Yii documentation。
@hamed在他的回答中指出如何强制使用字段。您可以通过指定验证规则为true的方案来添加此功能。例如。array('field1, field2', 'required', 'on' => array('create', 'update'));
将应用' required'仅用于插入和更新的规则。另一方面。
array('field1, field2', 'required', 'except' => array('create', 'update'));
将应用' required'规则仅适用于除插入和更新之外的所有场景。