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
设置。
我在 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
设置。