You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Laravel聊天应用实现登录用户姓名自动填充输入框的方法咨询

解决自动填充登录用户姓名的问题

嘿,这事儿不难!你已经拿到了登录用户的姓名{{ Auth::user()->name }},只需要把它赋值给输入框的value属性就行,同时根据需求决定是否让用户编辑这个字段。

方案1:让用户能看到姓名但无法修改(推荐)

把原来的姓名输入框加上readonly属性,同时设置value为用户姓名:

<form action="/create" method="post">
    <input type="text" name="title" placeholder="Name" value="{{ Auth::user()->name }}" readonly>
    <input type="text" name="content" placeholder="Content">
    {{ csrf_field() }}
    <button type="submit">Send Message</button>
</form>
  • readonly:让输入框变成只读状态,用户不能修改,但表单提交时会正常传递这个值
  • value="{{ Auth::user()->name }}":把登录用户的姓名自动填充到输入框里

方案2:完全隐藏姓名字段(用户看不到)

如果不需要用户看到姓名,只想后台自动获取,把输入框改成hidden类型:

<form action="/create" method="post">
    <input type="hidden" name="title" value="{{ Auth::user()->name }}">
    <!-- 可以加个提示文本告诉用户姓名已自动填充 -->
    <p>当前登录用户:{{ Auth::user()->name }}</p>
    <input type="text" name="content" placeholder="Content">
    {{ csrf_field() }}
    <button type="submit">Send Message</button>
</form>

这样用户看不到输入框,但提交表单时title参数会自动带上用户姓名。

额外注意事项

别忘了加个登录判断,避免用户未登录时Auth::user()返回null导致报错:

@if(Auth::check())
<form action="/create" method="post">
    <input type="text" name="title" placeholder="Name" value="{{ Auth::user()->name }}" readonly>
    <input type="text" name="content" placeholder="Content">
    {{ csrf_field() }}
    <button type="submit">Send Message</button>
</form>
@else
<p>请先登录才能发送消息!</p>
@endif

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

火山引擎 最新活动