在将模型变量打印为输入值时 此代码:
value="{{ old('name', $event->name or null) }}"
打印: 1
和此代码:
value="{{ old('name', isset($evento->name) ? $evento->name : null) }}"
打印:“实际值”
有人知道为什么吗?如果我没看错文档,第一个示例就是假设的工作。
答案 0 :(得分:0)
您的代码的行为方式是这样的,因为在您的第一个代码中,您基本上是在打印布尔表达式。
(new Component<'a', 'b'>('a', 'b'))
.andThen(new Component<'b', 'c'>('b', 'c'))
.andThen(new Component<'c', 'd'>('c', 'd'))
.andThen(new Component<'d', 'e'>('d', 'e'))
.andThen(new Component<'e', 'f'>('e', 'f'))
.andThen(new Component<'f', 'g'>('f', 'g'))
将返回一个布尔值,即0或1。另一方面,在第二版代码中,您正在使用执行以下操作的三元运算符:
答案 1 :(得分:0)
如果进行测试并尝试转储$event->name or null
返回的值,则可以看到它重新调整了true
,在您的html中,它转换为1
。
您的第二种方法可以转换为伪代码:
if (isset(...))
return name
else
return null
这实际上将返回name
值或null
值。
依靠您的PHP (7.0) / Laravel (5.5)版本,您可以用两种较短的方式编写文字。
// PHP 7.0
$evento->name ?? null
// Laravel 5.5
optional($evento)->name
答案 2 :(得分:0)
就我而言,我带着职位标题中所述的确切问题来到这里,但是我的情况与OP的情况略有不同。
我正在从具有or
而不是??
的旧Laravel刀片代码进行更新。
将{{ $variable or 'Default Value' }}
更改为{{ $variable ?? 'Default Value' }}
对我有用。