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

Laravel 5.2表单无报错却无法提交问题求助

解决Laravel 5.2表单无法提交的问题

嘿,我帮你找到了几个关键问题,这就是你的表单提交失败且无报错的核心原因:

1. 嵌套表单导致提交行为完全异常

你同时写了原生HTML的<form class="form-horizontal">和Laravel Collective的{!! Form::open(...) !!},而HTML规范绝对不允许表单嵌套。浏览器会自动忽略其中一个表单标签,实际提交的是外层的原生表单——它默认使用GET方法,所以你才会看到所有参数都挂在URL后面,根本没触发你定义的POST路由到TicketsController@store。

2. Form::open的参数语法错误

你把表单的class属性单独放到了第二个数组里,还写错了语法:['class=>form-horizontal form bordered']里的键名class没加引号,箭头=>的写法也不符合PHP数组规范。正确的做法是把所有表单选项(包括class)都放在第一个参数数组里。

3. 控制器方法的多余大括号

你的store方法里多了一层不必要的大括号,这会导致语法错误,虽然因为表单没提交到这里所以没触发,但还是要修正。

4. 小问题:单行输入框误用多行属性

你给Form::text('body')设置了rows和cols,但单行文本输入框不支持这些属性,应该换成Form::textarea来实现多行输入。


修正后的表单代码

{!! Form::open(['method'=>'POST','action'=>'TicketsController@store','files'=>true, 'class'=>'form-horizontal form bordered']) !!}
<div class="form-group">
    {!! Form::label('problem_title','title',['class'=>'control-label col-lg-2']) !!}
    <div class="col-lg-10">{!! Form::text('problem_title',null,['class'=>'form-control']) !!}</div>
</div>
<div class="form-group ">
    {!! Form::label('category_id','Category:',['class'=>'control-label col-lg-2']) !!}
    <div class="col-lg-10">{!! Form::select('category_id',$categories,'3',['class'=>'form-control']) !!}</div>
</div>
<div class="form-group ">
    {!! Form::label('status_id','Status:',['class'=>'control-label col-lg-2']) !!}
    <div class="col-lg-10">{!! Form::select('status_id',$statuses,'3',['class'=>'form-control']) !!}</div>
</div>
<div class="form-group">
    {!! Form::label('body','How can We help you?',['class'=>'control-label col-lg-2']) !!}
    <div class="col-lg-10">{!! Form::textarea('body',null,['class'=>'form-control','rows'=>5 ,'cols'=>5]) !!}</div>
</div>
<div class="form-group">
    {!! Form::label('photo_id','ScreenShot:',['class'=>'control-label col-lg-2']) !!}
    <div class="col-lg-10">{!! Form::file('photo_id', ['class'=>'form-control']) !!}</div>
</div>
<div class="text-right">
    {!! Form::submit('Create Ticket',['class'=>'btn btn-primary ']) !!}
</div>
{!! Form::close() !!}

修正后的控制器代码

public function create() {
    $categories = Category::lists('name','id')->all();
    $statuses = Status::lists('name','id')->all();
    // 注意:你之前compact了$users但没定义它,这里我去掉了,如果你需要用户数据请补充获取逻辑
    return view('tickets.create', compact('categories','statuses'));
}

public function store(Request $request) {
    $user = Auth::user();
    $input = $request->all();
    
    if($file = $request->file('photo_id')){
        $name = time() . $file->getClientOriginalName();
        $file->move('images',$name); // 修正了move方法的空格问题
        $photo = Photo::create(['file'=>$name]);
        $input['photo_id'] = $photo->id;
    }
    
    $user->ticket()->create($input);
    return redirect('tickets');
}

修正后再测试提交,应该就能正常触发POST请求并执行store方法的逻辑了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:39:34