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

Laravel 5.5 表单数据存入数据库(Eloquent模型)报错排查

搞定你的Laravel数据插入问题

嘿,看你抛出的SQL错误,核心问题很明显——你的插入操作里没给model和type字段赋值,而且这俩字段在数据库里是必填项(Migration里没设nullable())。咱们来拆解下代码里的问题:

1. 控制器里的低级赋值错误

先看CarsController的store方法,这里有个离谱的小失误:

$cars->brand = $request->input('brand');
$cars->brand = $request->input('model'); // 这里应该是$cars->model啊!
$cars->brand = $request->input('type'); // 这里要改成$cars->type!
$cars->brand = $request->input('doors'); // 这里得是$cars->doors!

你把model、type、doors的值全塞给brand字段了,导致model和type完全没被赋值,数据库自然会报错说“model字段没有默认值”。

修正后的store方法应该是这样:

public function store(Request $request) {
    $cars = new Cars;
    $cars->brand = $request->input('brand');
    $cars->model = $request->input('model');
    $cars->type = $request->input('type');
    $cars->doors = $request->input('doors');
    $cars->priceHour = $request->input('priceHour');
    $cars->priceDay = $request->input('priceDay');
    $cars->priceWeek = $request->input('priceWeek');
    $cars->priceMonth = $request->input('priceMonth');
    $cars->priceYear = $request->input('priceYear');
    $cars->save();
    // 这里建议用命名路由跳转,比硬写URL靠谱
    return redirect()->route('cars.create');
}

2. 视图里漏掉了type输入框

你的Migration里定义了必填的type字段,但AddCar.blade.php里完全没有这个输入项!用户没法输入type的值,就算控制器改对了,还是会因为type为空报错。

赶紧在视图里加个type的输入框,比如放在model和doors之间:

<input type="text" name="type" placeholder="Typ pojazdu">

3. 可选优化:用批量赋值减少出错概率

为了避免这种手动赋值的低级错误,你可以给Cars模型开启批量赋值,代码会简洁很多:
先在Cars模型里添加$fillable属性:

namespace App;
use Illuminate\Database\Eloquent\Model;
class Cars extends Model {
    protected $fillable = [
        'brand', 'model', 'type', 'doors', 
        'priceHour', 'priceDay', 'priceWeek', 'priceMonth', 'priceYear'
    ];
}

然后store方法可以简化成一行:

public function store(Request $request) {
    Cars::create($request->all());
    return redirect()->route('cars.create');
}

这样就不用一个个字段赋值,大大降低出错的可能。

4. 路由跳转的小细节

你原来写的return redirect('admin.AddCar');是错的,因为你用的是Route::resource,对应的创建页面命名路由是cars.create,用redirect()->route('cars.create')跳转更稳定,不会因为URL结构变化失效。

把这些修改都做完,再提交表单试试,应该就能正常把数据插入数据库了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:40:54