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

Laravel 7.1使用Session时表单开闭替代方式及Form类报错排查

问题原因及解决方案

为什么出现「Class 'Form' not found」报错

Laravel 7.1已不再内置Form类(该类原属于LaravelCollective的HTML/Form扩展包),官方从Laravel 5.8版本起就移除了对这个扩展包的内置支持,直接调用Form::open或Form::model自然会提示类找不到。

两种解决方式

方式一:安装LaravelCollective Form扩展包

如果你想继续使用Form::open这类语法,需手动安装扩展包:

  1. 执行Composer命令安装:
    composer require laravelcollective/html
    
  2. 打开config/app.php文件,添加服务提供者和门面别名:
    • 在providers数组中添加:
      Collective\Html\HtmlServiceProvider::class,
      
    • 在aliases数组中添加:
      'Form' => Collective\Html\FormFacade::class,
      'Html' => Collective\Html\HtmlFacade::class,
      
  3. 完成后即可继续使用你原来的Form::open、Form::model写法。

方式二:使用原生HTML表单 + Laravel辅助函数(推荐)

无需依赖第三方包,直接用原生HTML表单配合Laravel辅助函数实现相同功能:
示例代码:

<div class="row">
    <div class="col-12">
        <form name="name_val" id="id_val" method="POST" enctype="multipart/form-data">
            <!-- 必须添加CSRF令牌,防止跨站请求伪造 -->
            @csrf
            <!-- 如果需要使用PUT/PATCH/DELETE这类非GET/POST的HTTP方法,添加以下字段 -->
            {{ method_field('PUT') }}
            
            <!-- 你的表单内容示例 -->
            <input type="text" name="title" value="{{ old('title') }}">
            
        </form>
    </div>
</div>
  • 关联Session的常用操作:
    • 回显表单旧数据:用old('字段名'),Laravel会自动从Session中读取表单提交失败后的旧输入值;
    • 操作Session数据:用session()辅助函数,比如session('key')读取数据,session(['key' => 'value'])存储数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 13:05:16