**我正在 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))
我期待这会发生。抱歉,我在这方面还是个初学者。
确切的查询在哪里?您面临的问题是因为 $query 为空,请尝试调试它,使用 dd 或 log::debug ,并检查 $query 的输入
这是示例,我的表 id 1 和 2 中有记录,但我尝试使用下面的查询查找 id 3 或者可能为 null
$query = model::find("");
表示 null 或 $query = model::find(3);
这些返回值为空,当你想改变它的值时,它会返回错误,就像你在设备中看到的那样
解决方案:检查输入,尝试调试输入和 $query