问题标签 [eloquent-relationship]
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 5.7 Eloquent Relation 上市
我正在尝试通过连接获取数据集,并且我想使用 eloquent 自动完成,无需手动查询。我也做了关系,但是当我尝试列出加入的数据时,它以某种方式做到了。
Laravel 5.7 版 MySQL 数据库
错误:
“SQLSTATE [42S22]:未找到列:1054 'where 子句'中的未知列'myTab1.my_tab3_id'(SQL:select * from
myTab1
wheremyTab1
.my_tab3_id
in (1, 2))”
myTab3.php
myTab1.php
myTab3Controller.php 索引方法
查看零件
laravel - 无法在 eloquent 中使用 where
我在 Laravel 中使用 Eloquent ORM。有 2 个模型,User 和 Trans。User hasMany Trans, Trans belongsTo User。问题是当我使用查询时,它不起作用。
我尝试->get()
在最后一个代码中使用,它仍然无法正常工作。我尝试->all()
在最后一个代码中使用它仍然无法正常工作。我试了whereIn,还是不行。
用户模型
反式模型
控制器
我希望输出基于查询,其中日期基于用户输入,当我删除时->where
,它可以工作并且输出是这样的。
php - 在事件监听器中同步多对多关系(Laravel 5.7)
Laravel App 有角色,每个Role
都有权限(多对多)
每个用户都有多个角色(多对多)
当 Role 的权限发生变化/更新时,RolePermissionsChanged
会触发 Event 并且监听器具有以下代码:
这必须更新permission_user
表以将角色同步给用户。触发事件时,作业失败并出现错误:
Method Illuminate\Database\Eloquent\Collection::sync does not exist.
如果我将foreach
循环中的行更改为App\User::find($user->id)->permissions()->sync($role_permissions);
,它正在工作,但我知道它应该以另一种方式完成。谁能指导我哪里出错了。
编辑:
下边是RolePermissionsChanged::class
php - Laravel Eloquent BelongTo 模型访问失败
我正在尝试通过使用 Laravel Eloquent HasMany(反向)关系来获取数据,但我无法访问。每当我尝试时,它都会显示Trying to get property 'name' of non-object
我有两个模型。类别和文章。类别有很多文章。以下是模型:
类别模型
文章模型
文章控制器
查看刀片(admin.article.pending-posts)
在刀片中,我无法通过 eloquent BelongsTo 功能访问类别,也没有得到消息背后的原因:
ErrorException (E_ERROR) 试图获取非对象的属性“名称”(查看:C:\xampp\htdocs\joliadmin\resources\views\admin\article\pending-posts.blade.php)
laravel - Laravel:如何在 MorphPivot 中定义 belongsTo?
在我的项目中,存在多对多的多态关系(称为 Package (morphedByMany) 的模型的许多实例可以包含许多不同的内容类型(每个 MorphedToMany)。
我创建了一个数据透视表,其中包含一些我需要访问和查询的附加字段,因此我决定最好的办法是通过扩展 MorphPivot 创建一个 Pivot 模型。
查询现在很容易,但是,我无法通过关系访问内容(如果我查询 App\Packages::findOrFail(1)->contentType(),我可以做到这一点)。我知道我应该声明枢轴属于内容类型,但我不确定如何处理它,因为它可能属于任何变形的内容类型。
根据要求编辑 代码块
内容1
内容2
包裹
变形枢轴
数据透视表迁移
laravel - 使用 Laravel 和 Eloquent 的关系浏览模型
我正在做一个项目,我们有以下模型:
- 物品种类
- 项目子类型
- 物品
作为一个例子,我会说:
ItemType : 硬件或软件
ItemSubtype:RAM、电源(如果是硬件)或应用程序、操作系统(如果是软件)
项目:4GB DDR4(如果是 RAM)或 MS Office 2019(如果应用程序)
这些是我看到的关系:
- 一个ItemType可以有多个ItemSubtype并且ItemSubtype只能属于一个ItemType
- 一个ItemSubtype可以有多个Item,一个Item只能属于一个ItemSubtype
这些是我的问题:
- 显然,一个Item只能属于一个ItemType。我是否需要在Item和ItemType模型之间建立关系?
- 如果问题1返回true(这是整天编码的结果!)我应该使用什么样的关系?ItemType通过ItemSubtype (hasManyThrough)有很多Item?还是ItemType hasMany Item和Item belongsTo one ItemType?或者只是使用ItemSubtype作为中间模型,并通过ItemSubtype从Item转到ItemType ,反之亦然,而ItemType和Item之间没有任何直接关系?
如果我不在ItemType和Item模型之间创建关系,我是否需要在项目迁移中使用item_type_id ?
对此有不同的方法吗?
先感谢您!
laravel - Laravel - 有一个或多个其他关系的雄辩关系
我现在正在学习 Laravel 和 Laravel 雄辩,现在我尝试使用 Laravel 中的关系来解决问题。这是我要归档的内容:
该数据库包含许多体育俱乐部。体育俱乐部有很多球队。每支球队都有比赛。团队表有一个名为 的列club_id
。现在我想创建 Eloquent 关系以获取俱乐部的所有游戏。
这是我到目前为止得到的:
俱乐部模型
id => PRIMARY
游戏模型
home_id => FOREIGN KEY of team ; guest_id => FOREIGN KEY of team
团队模型
id => PRIMARY ; club_id => FOREIGN
在我的控制器中,我想做的就是Club::findOrFail($id)->games()
执行上面的代码会返回一个 SQL 错误,即 games 表没有名为 的列club_id
。
创建这种关系的正确方法是什么?
谢谢!
编辑
感谢 Nikola Gavric,我找到了获得所有比赛的方法——但仅限于俱乐部球队是主队或客队的情况。
这是关系:
如何获得 home_id 或 guest_id 与俱乐部球队匹配的比赛?此函数中的最后一个参数不允许使用数组。
laravel - 如何以雄辩的方式将第二张和第三张桌子连接在一起
我有三个模型 1.Document 2.Sharedoc 3.User
文档.php
Sharedoc.php
用户.php
控制器:
结果是:
在这个结果中,'document' 表加入了 'sharedoc' 和 'user' 表......但我希望 'document' 加入 'sharedoc',然后 'sharedoc' 加入 'user'...... 我该怎么做呢?