问题标签 [laravel-eloquent]

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.

0 投票
3 回答
5000 浏览

php - 使用 Laravel 迁移创建外键时出现 MySQL 错误

我设置了一个 Laravel 应用程序,并且正在使用Sentry 2进行用户身份验证。我有一个Post与默认哨兵User表一起调用的模型。我想让一个用户有很多帖子,一个帖子属于一个用户。为了在我的数据库模式中反映这一点,我需要在posts和之间创建一个外键约束users

我写的迁移如下:

使用 运行它后php artisan migrate,我在命令提示符中收到 MySQL 错误:

[Illuminate\Database\QueryException]
SQLSTATE[HY000]:一般错误:1005 无法创建表 'blog.dev.#sql-3bb_2d'(errno:150)(SQL:alter tableposts添加约束posts_user_id_foreign 外键(user_id)引用usersid))

起初我认为发生此错误是因为主键列的users定义与我的外键列不同user_id,但是它们都定义为int(10).

从谷歌我了解到这个错误可能是由两列定义不同引起的,但这里似乎不是这种情况。

0 投票
3 回答
4431 浏览

php - Laravel Eloquent:将模型与输入合并

我想知道如何将数据Input::all()与模型合并并保存结果。

澄清一下:我想做如下的事情:

0 投票
4 回答
16534 浏览

sql - Laravel - 播种大型 SQL 文件

当我在生产中运行我的数据库种子脚本时,会发生内存耗尽。

下面是我的种子脚本。

所以我所做的是在我的种子脚本上添加一个无限制的。

现在的问题是,当我运行脚本时,它会将 SQL 脚本的内容(非常非常大)记录到终端中。

有没有一种在我的数据库种子中运行 SQL 转储而不消耗太多内存的好方法?我现在做的是手动运行它:

0 投票
2 回答
1946 浏览

php - 在模型中运行原始 sql:Laravel

我正在使用 Laravel,需要从模型/存储库类运行原始 sql 查询

前任。当我从 UserRepository 插入数据时

我需要某种方法来获取数据库连接并通过模型运行 sql

我看到 Laravel 有updateOrInsert()方法,但我需要一次为多个数据集运行它。

如何通过模型类或存储库运行原始 sql 查询?

谢谢

更新 - 已解决

我浏览了Eloquent Model Sourcecode,发现我可以从 getConnection() 方法获得连接

0 投票
1 回答
848 浏览

php - 在 eloquent 模型中使用特征时总是急切的负载关系

我正在为我HasTranslation的任何雄辩模型提供 -Trait。所有使用此特征的模型都将收到这样的一对多关系(您可以在其中看到我的基本模型到 ModelLanguages 关系):

我想做的是:

总是急切地加载与当前用户语言翻译的“hasOne”关系。所以每当用户登录时,我的模型应该有类似$model->userLanguage被急切加载的东西,并且是ModelLang.

这看起来像这样并且效果很好:

我正在努力通过仅包含此特征来自动(渴望)为所有模型加载此关系。

到目前为止我尝试过的

  1. 在 trait 中使用构造函数:可以工作,但不是好主意,因为这可能会与其他 trait 的构造函数发生冲突。基本上我会确认声明:不要在任何特征中使用构造函数。

  2. 使用您的引导特征方法(bootHasTranslation),但我没有要调用的具体对象loadwith方法。我在实例化的 eloquent 模型中没有找到任何挂钩,我想在其中添加我的关系到急切的负载

有任何想法吗?我在这里忽略了什么明显的东西吗?

0 投票
1 回答
799 浏览

laravel-5 - 如何在 Laravel5.0 中为 Controller 方法设置隐藏属性?

我想隐藏从数据库中选择的一些数据,但从 Controller 中未在其模型中定义的某些方法重新初始化。

0 投票
1 回答
2617 浏览

php - Laravel 有Many Many to Many To One Eloquent

我没有太多运气以 Laravel 的方式解决这个问题。所以我提出两个问题。

鉴于我有一辆汽车并且汽车可以有很多特征,但特征也由特征类型分隔,我怎样才能返回所有特征,分隔特征类型,对于所说的汽车?

我有四个表,listings_features 是数据透视表:

  • 列表(ID)
  • Listings_features (listing_id, feature_id)
  • Listings_features_types (id, 类型)
  • Listings_features_values(id,listing_feature_type_id,值)

我有以下代码,它产生了我需要的东西,但是当我使用它时,我得到一个 Laravel 错误......“调用字符串上的成员函数 addEagerConstraints()”......因为我这样调用它:

我用来以我想要的格式生成数据的代码(不是坚定的)是

返回:

以下是模型(非常基本,刚刚开始):

如何创建 Laravel 模型关系以实现相同的结果集但如上所述调用它?或者,我怎样才能像上面那样调用它但阻止错误发生?

如果你做到了这一步,谢谢!

更新:

我无法让它按原样工作,我遇到了一个 SQL 错误,这让我觉得我需要一个 belongsToManyThrough,所以我可以指定表名:

但是使用@Carter Fort下面作为答案发布的确切代码并将 features() 方法更改为

还添加到模型 ListingFeatureValue

我得到以下输出:

这比我当时的情况要好,但如果结果按类型分组,然后按其中的特征分组,而不是每个特征都附加一个类型,那就太好了。使解析显示变得更加困难。感谢您迄今为止的帮助!

更新 2

这些将是我的架构文件:

更新 3 从下面的答案中进行更改(一旦工作,我将发布所有代码)我接近我想要的。

// .... ]

我想要的是:

0 投票
3 回答
1610 浏览

php - Laravel:加入两个表从表一中获取信息并从表二中获取第一个相关图像

我有两张表,一张是propertyDetails,另一张是propertyImages ,我已经完成了两张表之间的关系,就像这样..

这是模型

物业详情

表迁移

属性图像

表迁移

我想要做的是projectsDetails从表二中选择所有第一个相关图像propertyImages

我试过

在我看来

拿到

未定义属性:Illuminate\Database\Eloquent\Collection::$image

0 投票
1 回答
256 浏览

laravel - hasManyThrough 在相同型号上

我有两个类UserMessage

我正在尝试从用户类中获取对用户消息的回复

在用户类中

但是这似乎不起作用,所以我正在尝试 hasManyThrough 操作

由于独特的表问题,这也不起作用

执行此操作的最佳方法是什么?

我应该只使用原始获取吗?

请记住,我可能还想执行分页和排序功能

0 投票
1 回答
2283 浏览

php - 使用 Eloquent 在 laravel 中进行内部连接

我有 2 个模型 LeaveApplication 和 LeaveDetails 模型我将链接到内部加入 leave 与 leaveDetails 模型

离开应用模型

这是 LeaveDetails 模型

我尝试使用LeaveApplication::with('leaveDetails')->where('leaveDetails.leave_date','2016-10-10')->get()

它给了我错误,这不是在雄辩中创建内部连接。

我也在使用whereHas('leaveDetails'),这不使用内部连接