Laravel刀片“旧输入或默认变量”?

Posted

技术标签:

【中文标题】Laravel刀片“旧输入或默认变量”?【英文标题】:Laravel blade "old input or default variable"? 【发布时间】:2016-02-12 16:15:59 【问题描述】:

我想在输入值中显示旧输入。如果没有旧输入,则显示其他变量:

value=" old('salary_' . $employee->id) or 'Default' "

但是当没有旧输入时,它给我1而不是默认值!

我认为问题与串联有关,但我不知道如何解决它!?

【问题讨论】:

【参考方案1】:

你可以使用:

old($key, $defaultValue)

查看更多: https://github.com/laravel/framework/blob/87df108bb487714d205002aba7e7317533976a8d/src/Illuminate/Foundation/helpers.php#L541-L553

【讨论】:

【参考方案2】:

您可以使用代码(适用于 PHP 7):

 old('field_name') ?? $model->field_name ?? 'default' 

对于复选框选中的属性,使用代码(如果默认值为 false):

 (old() ? old('field_name', false) : $model->field_name ?? false) ? 'checked' : '' 

构造 $something or 'default' 仅适用于变量

【讨论】:

【参考方案3】:

试试这个:

<textarea name="alamat" id="" class="form-control" placeholder="Alamat"> old('alamat').@$biodata->alamat </textarea>

【讨论】:

需要更详细的解释。 这到底是什么【参考方案4】:

如 Laravel 文档中所述:“如果您在 Blade 模板中显示旧输入,则使用旧助手更方便:”。 因此,如果您需要添加/编辑数据表单(当您需要使用编辑表单在编辑模式下添加和编辑时,您需要使用从模型(数据库)加载的数据)来显示模型中的值(通过控制器),您可以使用以下:

name="some_value" value=" $some_value or old('some_value', $the_value) "

视图数组中的“some_value_from_model”变量名称在哪里。 在这种情况下,首先应该使用 $some_value 来设置“值”,如果没有,它将尝试使用旧的(来自名称“some_value”的请求的值),如果不是旧的,那么 '' 应该是用过。

感谢 WoodyDRN 的评论。

【讨论】:

但是如果你这样做 $some_value 或 old('some_value') - 那么如果用户在输入字段中输入任何内容并提交,并且出现错误,那么它将默认返回到 $some_value 并删除他们写的任何内容。 old('some_value', $some_value) 会解决这个问题。【参考方案5】:

or 是 PHP 中的比较运算符,因此您的代码计算结果为 true,或 1。您想要的是三元 if 语句。

如前所述,or 可以在刀片中用作三元 if 语句的简写。

但是您可以(并且应该)将默认值作为第二个参数传递给函数,如下所示:

value=" old('salary_' . $employee->id, 'Default') "

【讨论】:

现在有趣的事情来了;使用 $value or $default 是在 Blade (Reference) 中执行三元语句的一种简写方式。因此,我不确定这是否正确。但是,它更清晰! 在 Laravel 文档中: isset($name) ? $name : 'Default' 简写方式 $name or 'Default' @ChrisForrence 你是对的!您每天都会学到一些东西...实现这一点的更好方法是将默认值作为第二个参数传递。 这并不能解决问题。当旧输入为空时,它什么也不提供……第二个变量没有回显。 谢谢!这正是我想要的。我当然希望 Laravel Docs 有更多的教程,但我想这就是 Laracasts 的原因。

以上是关于Laravel刀片“旧输入或默认变量”?的主要内容,如果未能解决你的问题,请参考以下文章

将 Laravel Blade 模板与 Vue JS 和事件监听器一起使用

我想自学laraver,请诸位前辈给一些建议,谢谢

Laravel 刀片视图不工作,没有刀片工作

larave学习笔记1-安装配置

Laravel - 刀片注释,刀片渲染导致页面崩溃

Larave中CSRF攻击