问题标签 [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.
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
)引用users
(id
))
起初我认为发生此错误是因为主键列的users
定义与我的外键列不同user_id
,但是它们都定义为int(10)
.
从谷歌我了解到这个错误可能是由两列定义不同引起的,但这里似乎不是这种情况。
php - Laravel Eloquent:将模型与输入合并
我想知道如何将数据Input::all()
与模型合并并保存结果。
澄清一下:我想做如下的事情:
sql - Laravel - 播种大型 SQL 文件
当我在生产中运行我的数据库种子脚本时,会发生内存耗尽。
下面是我的种子脚本。
所以我所做的是在我的种子脚本上添加一个无限制的。
现在的问题是,当我运行脚本时,它会将 SQL 脚本的内容(非常非常大)记录到终端中。
有没有一种在我的数据库种子中运行 SQL 转储而不消耗太多内存的好方法?我现在做的是手动运行它:
php - 在模型中运行原始 sql:Laravel
我正在使用 Laravel,需要从模型/存储库类运行原始 sql 查询
前任。当我从 UserRepository 插入数据时
我需要某种方法来获取数据库连接并通过模型运行 sql
我看到 Laravel 有updateOrInsert()
方法,但我需要一次为多个数据集运行它。
如何通过模型类或存储库运行原始 sql 查询?
谢谢
更新 - 已解决
我浏览了Eloquent Model Sourcecode,发现我可以从 getConnection() 方法获得连接
php - 在 eloquent 模型中使用特征时总是急切的负载关系
我正在为我HasTranslation
的任何雄辩模型提供 -Trait。所有使用此特征的模型都将收到这样的一对多关系(您可以在其中看到我的基本模型到 ModelLanguages 关系):
我想做的是:
总是急切地加载与当前用户语言翻译的“hasOne”关系。所以每当用户登录时,我的模型应该有类似$model->userLanguage
被急切加载的东西,并且是ModelLang
.
这看起来像这样并且效果很好:
我正在努力通过仅包含此特征来自动(渴望)为所有模型加载此关系。
到目前为止我尝试过的
在 trait 中使用构造函数:可以工作,但不是好主意,因为这可能会与其他 trait 的构造函数发生冲突。基本上我会确认声明:不要在任何特征中使用构造函数。
使用您的引导特征方法(
bootHasTranslation
),但我没有要调用的具体对象load
或with
方法。我在实例化的 eloquent 模型中没有找到任何挂钩,我想在其中添加我的关系到急切的负载
有任何想法吗?我在这里忽略了什么明显的东西吗?
laravel-5 - 如何在 Laravel5.0 中为 Controller 方法设置隐藏属性?
我想隐藏从数据库中选择的一些数据,但从 Controller 中未在其模型中定义的某些方法重新初始化。
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 从下面的答案中进行更改(一旦工作,我将发布所有代码)我接近我想要的。
// .... ]
我想要的是:
php - Laravel:加入两个表从表一中获取信息并从表二中获取第一个相关图像
我有两张表,一张是propertyDetails
,另一张是propertyImages
,我已经完成了两张表之间的关系,就像这样..
这是模型
物业详情
表迁移
属性图像
表迁移
我想要做的是projectsDetails
从表二中选择所有第一个相关图像propertyImages
我试过
在我看来
拿到
未定义属性:Illuminate\Database\Eloquent\Collection::$image
laravel - hasManyThrough 在相同型号上
我有两个类User和Message,
我正在尝试从用户类中获取对用户消息的回复
在用户类中
但是这似乎不起作用,所以我正在尝试 hasManyThrough 操作
由于独特的表问题,这也不起作用
执行此操作的最佳方法是什么?
我应该只使用原始获取吗?
请记住,我可能还想执行分页和排序功能
php - 使用 Eloquent 在 laravel 中进行内部连接
我有 2 个模型 LeaveApplication 和 LeaveDetails 模型我将链接到内部加入 leave 与 leaveDetails 模型
离开应用模型
这是 LeaveDetails 模型
我尝试使用LeaveApplication::with('leaveDetails')->where('leaveDetails.leave_date','2016-10-10')->get()
它给了我错误,这不是在雄辩中创建内部连接。
我也在使用whereHas('leaveDetails')
,这不使用内部连接