Laravel 迁移默认

问题描述 投票:0回答:1

**我正在 YouTube 上关注 4 小时的 Laravel 教程,我使用的是 Windows,而他使用的是 Mac,

完成验证和商店列表部分后,我的代码发生了这种情况**

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Listing extends Model
{
    use HasFactory;
    

    protected $fillable = ['title', 'company', 'location', 'website', 'email', 'description', 'tags'];

    public function scopeFilter($query, array $filters)
    {
        if($filters['tag'] ?? false) {
            $query->where('tags', 'like', '%' . request('tag') . '%');
    
        }
    
        if($filters['search'] ?? false) {
            $query->where('title', 'like', '%' . request('search') . '%')
            ->orWhere('description', 'like', '%' . request('search') . '%')
            ->orWhere('tags', 'like', '%' . request('search') . '%');
    
        }
    }
}

SQLSTATE[HY000]:一般错误:1364字段“标题”没有默认值(连接:mysql,SQL:插入

listings
updated_at
created_at
)值(2024-06-24 01 :32:17, 2024-06-24 01:32:17))

enter image description here

enter image description here

我期待这会发生。抱歉,我在这方面还是个初学者。

laravel migration default
1个回答
0
投票

确切的查询在哪里?您面临的问题是因为 $query 为空,请尝试调试它,使用 dd 或 log::debug ,并检查 $query 的输入

这是示例,我的表 id 1 和 2 中有记录,但我尝试使用下面的查询查找 id 3 或者可能为 null

$query = model::find("");
表示 null 或
$query = model::find(3);

这些返回值为空,当你想改变它的值时,它会返回错误,就像你在设备中看到的那样

解决方案:检查输入,尝试调试输入和 $query

© www.soinside.com 2019 - 2024. All rights reserved.