Laravel中的自定义主键无法正常工作

时间:2018-04-14 14:30:41

标签: laravel laravel-5.6

我在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);

这里有什么问题?

1 个答案:

答案 0 :(得分:7)

  

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

这是你的问题。

DB::来电不使用Eloquent - 你完全绕过了它。如果您执行Task::find($taskn)它会有效,但DB::来电不知道您的$primaryKey设置。