问题标签 [laravel-relations]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 如何从 Laravel 日期范围内未创建的数据库中获取记录?
我有一个功能,我可以在其中获取日期之间的所有销售记录。这是功能:
但现在我需要创建一个函数,该函数将从数据库中获取在日期范围内没有任何销售的所有记录。
就像是:
如何获得在日期范围内未售出的所有产品?
laravel - 我在 laravel 8 中有一个属于关系,当我尝试在 tinker shell 中使用该关系时它返回 null
我正在使用 Laravel 8,我有以下非常简单的模型和迁移,
作者模型
轮廓模型
create_authors_table 迁移
create_profiles_table 迁移
尽管有上述模型和迁移,但如果我Profile
在 tinker shell 中创建一个新模型并执行$profile->author()
它会返回null
. 我不明白问题出在哪里。
(我尝试更改$this->belongsTo('App\Models\Author');
和$this->belongsTo(Author::class);
重新$this->hasOne('App\Models\Profile');
启动$this->hasOne(Profile::class);
修补程序。问题仍然存在。我什至尝试将所有无符号整数键更改为无符号大整数,但问题仍然存在。)
laravel - HasOne 显示“null”或“未定义属性:Illuminate\\Database\\Eloquent\\Relations\\HasOne”
我正在尝试使用hasOne
在我的数据集中返回单个值,但是如果不返回完整对象,我似乎无法将单个列作为值返回。
返回时对象的外观hasOne
:
仅使用 hasOne 作为默认对象的结果:
返回null
:
返回Call to a member function addEagerConstraints() on array
:
返回Undefined property: Illuminate\\Database\\Eloquent\\Relations\\HasOne::$steps
:
预期结果:
根据与@MaartenDev 的评论中的对话进行更新
我想在模型被调用时附加$model->steps->steps
到。$model->steps
因为我正在更新数据库表以将某些数据拆分为表,并希望在调用模型时保持数据的结构相同。
例如,如果您正在使用getUserCountAttribute
,您可以通过hasMany()->Count()
.
所以我想在调用模型时将steps
数组附加到steps
属性中。
laravel - 检查交易中所有订单的状态并将交易标记为已完成
work_orders 是 hasMany() 关系。
我想检查交易中的所有订单是否都已完成,然后运行一个函数来完成交易。如果任何工作订单未完成,那么什么都不做,然后返回。我当前代码的问题是,如果任何工作订单完成,则标志着交易完成。但我想检查是否所有订单都已完成
php - laravel:无法使用外键和非主键在模型中创建关系
我们在 laravel 模型中创建关系时遇到了问题。
要求:我们想以这样的方式创建一个关系,我们有三个表
block_primary_table
block_id | 块名 |
---|---|
1 | XYZ |
2 | 美国广播公司 |
块翻译表
ID | 语言标识 | block_id | 块名 |
---|---|---|---|
1 | 1 | 1 | XYZ-英文 |
1 | 2 | 1 | XYZ-印地语 |
1 | 1 | 2 | ABC-英语 |
1 | 2 | 2 | ABC-印地语 |
和第三个用户表,我们在其中捕获用户区域
用户区域
用户身份 | 用户名 | 区 | 堵塞 |
---|---|---|---|
1 | ABC用户 | 1 | 1 |
我们有一个模块的表单,其中我们有一个区域和块字段,块字段依赖于区域字段,因此在创建新条目时,块会根据区域值加载到下拉列表中,以便我们可以显示该值很容易,因为它将由 ajax 处理。
但是在编辑操作期间,假设我们正在从 user_area 编辑 user_id 1,此时现有值需要进入表单,但是这里像其他字段值一样的问题是正确的,但是对于块,在编辑操作期间,值出现使用实体的字段,在模型中定义,所以在那个关系中我们有
因此,我们期望它将通过将块(user_area 的外键)映射到 block_translation_table 的 block_id(block_translation_table 的非主键)来从块转换表中返回值。
我们是相关的列名,它仍然是将 user_area 表的块列与 block_translation_table 的 id 列映射。
所以请提供问题的解决方案,比如我们如何在 laravel 模型中为外键和非主键创建关系。
laravel - Laravel 资源中的多对一
我使用 laravel 8 并有 3 个表:产品、产品价格和产品发布者:
这是我的这种关系的产品模型:
这是我的发布者关系的 productsPrice 模型:
现在,我想为我的 api 使用 laravel 资源,我写了产品资源:
但是在 lastPrice 资源中,当我这样写时:
它给了我这个错误:
此集合实例上不存在属性 [id]。
当我使用此代码时:
得到响应,但因为我需要在我的 lastPirce 中为发布者使用另一个关系,所以我不能使用该代码,应该单独返回我的数据。我应该怎么做?谢谢
编辑 1: 这是我的控制器代码:
这是 sendResponse & sendError:
谢谢。
编辑 2: 我将我的 lastPrice Resource toArray 函数更改为此并解决了我的问题,但我认为这不是一个干净的方法,有更好的主意吗?
mysql - laravel 与 json 列的关系
问题:
目前,我有 2 个表,分别是games和Promotion,但是在建立关系时遇到了麻烦,因为 Promotion 表中的 game_id 列是JSON ,所以很难加入它。是否有任何解决方法可以轻松地将它们连接在一起以检索游戏数据?
php - Laravel - 与资源的关系和加载时不起作用
所以我试图利用资源来控制输出,因为有人告诉我这是为 api 输出建模数据的最佳方法。
客户模型
发票型号:
客户资源:
发票资源:
客户控制器:
但是当我去 API EndPoint
错误从堆栈开始:
return CustomerResource::collection($customers->paginate(50))->response();
laravel - 在 Laravel 中更改模型和数据库表名
我想在 Laravel 项目中更改我的模型名称及其数据库表名称,但我已将其他模型与关系连接起来。所以现在我想知道是否有任何方法或工匠命令来改变它,所以它不会给它的连接带来问题?