mysql - Eloquent 查询不选择特定的 ID

标签 mysql laravel eloquent

这个问题类似于这个question

我没有更改表迁移中的默认 autoIncrement,但是我注意到我无法从特定行的 ID 获取模型。对于其他行,它工作正常。我清除了缓存,认为这是缓存问题,但似乎不是。

行为

我得到了记录 1,..., 58, 59, 60

当我选择模型时

$object = Post::find(59);
// $object returns null but record exists

但是我通过应用程序添加了另一条记录以检查行为是否相同,60 中的记录不为空,这是预期的行为。有没有人遇到过这个?如果是这样,克服这个问题的最佳方法是什么。

我在 Windows 上使用 XAMPP v8.0.8

编辑: 发布模型

class Post extends Model
{
    use HasFactory,Searchable,SoftDeletes;

    protected $fillable = [
        'hash_id','user_id','location','subjects','request_type'
    ]; 

    protected $casts = [
        'location' => 'array',
        'subjects' => 'array'        
    ];
    
    public function User()
    {
        return $this->belongsTo('App\Models\User');
    }

    public function searchableAs()
    {
        return 'posts';
    }    
   
}

迁移文件

public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('hash_id')->unique();
            $table->integer('user_id');
            $table->json('location');            
            $table->json('subjects');
            $table->string('request_type');
            $table->timestamps();
            $table->softDeletes();
        });
    }

最佳答案

假设从软删除中删除记录会发生这种情况。尝试查看数据库中的 deleted_at 字段。

关于mysql - Eloquent 查询不选择特定的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69157627/

相关文章:

mysql - 按数字顺序排列字符串

mysql - 按 ID 将第一个 MySQL 表中的数据追加到第二个表

php - Laravel 4 - Eloquent 。无限的 child ​​变成可用的数组?

MySQL:代表第三列将两列相乘得到列的总和

php - 如何在laravel Eloquent 更新查询中更新表字段=字段+1

php - PDO 设置 PDO::MYSQL_ATTR_FOUND_ROWS 失败

mysql - 使用子查询的查询需要比使用固定数据而不是子查询的相同查询更长的时间

rest - Laravel Restful API - 如何基于多个参数创建自定义查询

angularjs - 使用 Laravel 和 AngularJS 的 RESTful API

Laravel 使用 Query Builder 进行 upsert 操作