You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从数据库取值预填充Laravel表单?解决语法错误问题

问题分析与解决方案

首先,咱们先搞清楚你直接嵌套{{listing->price}}为什么会报错:

你已经在Blade的{{ }}标签里调用Form::text()函数了,这时候内部已经是PHP执行环境,不需要再套一层{{ }}。嵌套的{{ }}会让Blade解析器误以为要开启新的echo输出,导致语法混乱,所以才会出现unexpected '}'的错误。

正确的最简解决方案

其实根本不需要绕弯子,直接把$listing->price作为Form::text()的第二个参数(默认值参数)传进去就行,因为在{{ }}内部可以直接使用PHP变量:

{{ Form::label('listing', 'Price:') }} 
{{ Form::text('price', $listing->price, ['class' => 'form-control', 'placeholder' => 'Price']) }}

这样表单加载时就会自动用$listing->price的值预填充输入框了。

关于你提到的修复方案

这个方案不仅没必要,而且本身存在语法错误,还达不到预期效果:

  • 你写的echo('{{Form::text('price',.$f. , ['class' => 'form-control', 'placeholder' => 'Price'])}}')里,字符串拼接的语法是错的(.的位置不对,引号也没正确闭合);
  • 更关键的是,用echo输出Blade语法的话,Blade解析器不会再处理这段代码,只会把它当成纯文本输出到页面上,根本不会渲染成表单输入框,自然也没法预填充值。

所以完全不需要用这种复杂且错误的方式,直接用上面的最简方案就可以解决问题啦。

内容的提问来源于stack exchange,提问作者user9820353

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:13:25