Laravel 中的自定义主键不起作用

custom primary key in Laravel not working

我在 Task.php 模型中设置了自定义主键。

class Task extends Model
{
    //

    protected $primaryKey = 'taskn';
    public $incrementing = false;

}

我还将 taskn 设置为迁移中的主键:

$table->string('taskn');

$table->primary('taskn');

但我仍然得到错误

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'where clause' (SQL: select * from `Task` where `id` = 1 limit 1)

出于某种原因 Laravel 仍在尝试查询 id

我正在尝试通过以下调用检索数据:

$tasks = DB::table('tasks')->find($taskn);

这里有什么问题?

I'm doing $tasks = DB::table('tasks')->find($taskn);

这是你的问题。

DB:: 调用不使用 Eloquent - 你完全绕过了它。如果你这样做 Task::find($taskn) 它会起作用,但是 DB:: 调用不知道你的 $primaryKey 设置。