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

标签 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);

这里有什么问题吗?

最佳答案

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

这是你的问题。

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

关于laravel - Laravel 中的自定义主键不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49832532/

相关文章:

php - 使用 Laravel 4 更新实时数据(如进度条)

javascript - 插入用户密码后 Laravel CRUD 更新

php - 如何在 Laravel 5.6 中更改列数据类型?

jquery - 如何根据 ajax 响应设置 html 元素的样式

javascript - Laravel + VueJS : Prevent access to pages without permission

php - 无法在 Laravel 5.6 Controller 中创建请求对象

Laravel 通过方法获取路由

Laravel sort 结果按周分组

mysql - 左连接不为空

javascript - 在 laravel 中删除确认