Laravel 9 旧值自动截断(仅保留首词)问题求助
解决方案
问题出在HTML属性解析上:你的Blade组件中,input标签的value以及其他属性(如name、id)未用双引号包裹。当值包含空格(比如全名“张三 王五”)时,HTML解析器会将空格后的内容识别为新属性,导致输入框仅显示第一个单词。
修复方法很简单,给所有HTML属性值加上双引号即可:
修改后的form-field.blade.php关键代码:
<label class="text-sm font-semibold" for="{{ $name }}">{{ $label }} {!! $required ? '<span class="text-primary">*</span>' : '' !!}</label> <div class="bg-gray-300 rounded-md @error($name) border-primary border-1 @enderror"> <input class="flex-grow bg-transparent border-gray-300 border-2 rounded-md w-full py-2 px-2 focus:border-black focus:outline-none" name="{{ $name }}" type="{{ $type }}" id="{{ $name }}" min="{{ $min }}" max="{{ $max }}" value="{{ $value ?? old($name) }}" {{ $disabled ? "disabled" : "" }} > </div>
重点修改部分:
label的for属性:for="{{ $name }}"input的name、type、id、min、max、value属性均添加双引号包裹
此问题与你之前配置的Trim中间件、AppServiceProvider无关,本质是前端HTML解析错误,而非后端数据处理逻辑问题。
内容的提问来源于stack exchange,提问作者Abu Bakar BSA
相关产品推荐
相关产品推荐

