为什么Laravel Lighthouse @rename指令对我不起作用?
我有这个GraphQL查询:
mutation CreateBudget(
$revenue: Float!,
$hours: Int!,
$projectId: Int!,
) {
createBudget(
revenue: $revenue,
hours: $hours,
projectId: $projectId,
) {
id
}
}
作为最佳实践,我想在这里使用camelcase,但在我的数据库中使用snake_case。表格如下所示:
CREATE TABLE IF NOT EXISTS `budgets` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`revenue` double(8,2) NOT NULL,
`hours` int(11) NOT NULL,
`project_id` int(10) unsigned NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `budgets_project_id_foreign` (`project_id`),
CONSTRAINT `budgets_project_id_foreign` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
我使用Lighthouse's @rename directive在两个外壳之间进行转换。但是,在运行查询时,当提交查询时,代码的某些部分似乎无法识别项目id,从而导致以下SQL错误:
SQLSTATE[HY000]: General error: 1364 Field 'project_id' doesn't have a default value (SQL: insert into `budgets` (`revenue`, `hours`, `updated_at`, `created_at`) values (1200, 12, 2019-12-03 09:12:13, 2019-12-03 09:12:13))
发送的变量为
variables: {
revenue: 1200,
hours: 12,
projectId: 1
}
这是我的schema.graphql的外观,在预算类型上使用@rename指令:
type Budget {
id: ID!
revenue: Float!
hours: Int!
projectId: Int! @rename(attribute: "project_id")
project: Project! @belongsTo
created_at: DateTime
updated_at: DateTime
}
type Mutation {
createBudget(
revenue: Float!
hours: Int!
projectId: Int!
): Budget @create(model: "App\\Models\\Budget\\Budget")
}
我肯定忽略了一些简单的东西,但我似乎找不到它。有人想试一试吗?
转载请注明出处:http://www.sdxiangshi.com/article/20230331/1327214.html
随机推荐
-
为什么laravel路由必须优先排序,否则页面找不到?
我正在学习如何在Laravel中使用Redis,并发现了这样一个奇怪的事情:当路由articles/{article}上的路由articles/trending时,路由article/trending可以正常工作:My Router cod...
-
Laravel中为什么不使用blpop取队列详析
前言 Redis 的 list 数据结构常用来做消息队列,通常使用的命令有 lpop/rpop ,还有带阻塞版的 blpop/brpop 等。Laravel 5.3 消息队列也是用的 lpop 取消息,为什么不用阻塞版的 blpop 呢?...
-
为什么在laravel中我的配置文件会被浏览器访问?
我已经在服务器上托管了我的项目,我的应用程序正在被黑客攻击,到目前为止,我知道我的配置文件没有像.env,composer.json等一样安全。这些文件可以通过说mydomain/filname直接访问,例如,www.abc.com/.en...
-
为什么Laravel供应商:发布返回“找不到可发布的资源”?
我正在用Laravel 7实现一个包,并使用https://github.com/jeroennoten/Laravel-AdminLTE作为参考。在我的包中,我有以下结构packages/mypackage/src/MyServicePr...
-
为什么在Laravel中不起作用?
我有以下内容:{{ Form::open(array(url = announcements, class = form-inline, method = GET)) }}和表单中的复选框:{{Form::checkbox(only_sub...
-
为什么分页laravel忽略请求-跳过,采取
我想使用skip和take,但是分页不起作用。为什么它不起作用?代码: $posts = DB::table(posts) -orderBy(id,desc) -skip(9) -tak...
-
为什么Laravel Pusher不在本地主机上工作,而是在生产上工作?
我正在做一个小的约会应用程序,我使用Pusher和Laravel。我使用一个名为NewMessage的事件并监听通道msg.{userId}。监听是有效的,但是广播事件不是这样的,但是它在生产上有效。我的代码如下:NewMessage.ph...
-
为什么Laravel将我重定向到登录页面,即使我仍在登录?
我在我的laravel项目中使用了php artisan make:auth来自动创建我的登录和注册页面。即使当我离开页面几分钟,然后返回到我的laravel项目页面时,我仍然是登录的,它会重定向到登录页面。我知道我已经登录了,因为我可以在...
-
为什么laravel $request-file返回null?
我有一个代码,我正在使用另一个应用程序上传文件使用Ajax,这是工作良好。在带有Jquery模式对话框的新应用程序中重用此代码并不能像预期的那样工作。下面是我的表格:{!! Form::open([method = POST, route ...
-
为什么Laravel将表创建(迁移)和模型分开?
我是框架的新手,也是ORM概念的新手。如果Eloquent将一个类映射到一个DB表,那么表的设计不也应该由该类来处理吗?例如,我想创建一个具有name和age属性的Person类(准确地说,是Model )。我必须首先创建一个表,在pers...