问题标签 [ardent]
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 中使用 ardent 来验证我不想保存的字段吗?
我希望 Ardent 检查密码和密码确认是否匹配……但是,我显然不想将密码确认存储在数据库中。那么我如何让 Ardent 完成它的工作并验证但不尝试保存密码确认?
注意:无论如何验证都会失败,因为它没有看到 password_confirmation 属性值。我想它正在模型属性下寻找它,而我只是将它设置为私有属性。如果我将它设置为模型的属性,它会尝试将其保存到数据库中。
laravel-4 - 插入相关模型时忽略可填充列表
我正在使用 Ardent,并且在插入/更新相关模型时遇到了忽略 $fillable 列表的奇怪行为。我定义了以下模型:
现在我正在尝试向用户添加新联系人:
...我得到了 SQL 插入错误:
同时这工作正常:
我没有收到任何 SQL 错误,并且 'unknown_field' 被忽略了。
任何想法为什么在通过构建器工作时可以忽略 $fillable 字段?!
testing - 如何使用 Mockery 测试使用 Ardent 模型的控制器?
我正在尝试在 Laravel 控制器中测试此功能:
我的(错误的)测试如下所示:
问题是,基本上,当验证失败时,Ardent 将 $project 设置为 false,但它也会在同一个对象上设置错误,可以使用 ->errors()->all() 检索这些错误。
我很迷茫,试图找出在模拟中返回什么。
注意:构造函数注入模型:
validation - Laravel 4、Factory Muff、Ardent、Faker 的 TDD - 我做错了
我想为我的数据模型编写有意义且有效的测试
我一直在尝试像 Laravel 的老板一样测试模型(现在我想说我正在努力保住中层管理的职位)。我正在使用Ardent
我的数据模型。上面引用的文章使它看起来Factory Muff
非常棒,并且在促进模拟对象的创建方面非常方便。
然而,随着我深入挖掘,我发现Factory Muff
它可以提供的数据非常有限。它基本上只是随机的单词和电子邮件地址。除此之外,似乎我必须在我的数据模型中编写一个静态方法来为模拟对象生成有效数据。这似乎不是很有用,但我猜我可能做错了,完全误解了这Factory Muff
一切。
在数据模型中
考虑这个数据验证规则集:
Factory Muff
似乎完全不适合生成除姓名和电子邮件地址之外的任何此类数据,除非我想编写一个静态方法来生成以正确方式格式化的数据。这就是我认为我必须Factory Muff
能够创建一个模拟对象而不会出现验证错误:
这看起来很冗长,尤其是在一个表上有 10 到 20 个字段的情况下。我也不喜欢调用\Faker\Factory::create()
每一个静态方法调用(我真的没有具体的理由,我只是不喜欢它;如果你知道一种解决方法,或者如果我的担心是没有根据的,请告诉我.)
在数据库播种机中
我有数据库种子脚本设置,用于Faker
在数据库中生成一堆垃圾,用于开发和测试。它超级直观且易于使用。例如,这是上述数据集的种子脚本。
我越想我在这里做什么,我就越觉得自己是多余的。
问题
- 如果我
Faker
在运行测试之前使用生成的垃圾数据播种数据库,我什至需要Factory Muff
创建模拟对象吗?我不应该能够使用数据库中的种子数据充分测试代码库吗?为什么我需要嘲笑? - 我错过了整个观点
Faker Muff
吗?它有什么优点吗?在我看来,它只不过是一个随机单词生成器。 - 我究竟做错了什么?我对 TDD 非常感兴趣,但它是如此令人生畏。如果您发现我的代码中有任何不好的做法,或者缺少最佳做法,请告诉我。
php - 是否有必要测试两个方向的关系?
我正在尝试使用和测试模型之间的关系。我能够测试方向上的关系,但我无法在方向上测试它。Ardent
FactoryMuff
belongs_to
has_many
我正在测试的模型是住宅房地产租赁应用程序及其相应的租赁历史。一个非常简化的数据库模式:
这是我的历史模型:
这是我确保历史对象属于租赁应用程序的测试:
这工作得很好。但是,我不知道如何测试另一个方向的关系。在项目需求中,一个租赁应用程序必须至少有一个与之关联的租赁历史对象。这是我的应用模型:
这就是我试图测试这种has_many
关系的方式:
这会导致ErrorException: Undefined property: Illuminate\Database\Eloquent\Collection::$application_id
我运行单元测试。对于我,这说得通。我没有告诉任何地方FactoryMuff
至少创建一个相应的History
对象来与我的Application
对象一起使用。我也没有编写任何代码来强制要求一个Application
对象必须至少有一个History
对象。
问题
- 如何执行“一个
application
对象必须至少有一个history
对象”的规则? - 我如何测试
has_many
关系的方向?
orm - Ardent 中的水合作用
你能澄清一下有什么区别吗
和
? 我不明白。如果我将第一个属性设置为 true,那么我将始终将输入数据水合到模型中,但是第二个属性是什么?
php - Laravel/Ardent:有没有更简单的方法来自定义错误消息?
有没有更简单的方法在 Laravel 中使用自定义验证错误消息,而不是在数组中列出每个字段和属性?我不介意打字,我只是觉得它看起来很脏。
这是我现在的两个代码块......
在public static $messages
块中,我想知道是否有任何方法可以在不输入每个字段名称和属性的情况下清理它?例如,我可以做这样的事情吗?
对我来说,这似乎更干净。感谢您提供的任何意见。
php - 保存后 Ardent 模型不验证
我在以一对多关系插入对象时遇到问题。这是我的代码:
PHP单元测试
测试运行将反映用户对象不会被更新。为什么?我究竟做错了什么?我希望下面的代码// Test assigning user to group 2
对现有对象执行更新,但DB::getQueryLog()
只显示选择和插入。这真的很烦人。
- 编辑 -
实际上是验证阻止了我。我在上面的测试中添加了对 Model->errors() 的调用。这指出保存后,包含在 User 对象中的用户名不再是唯一的 - 因为它发现自己在数据库中(WTF?)。它还说 password_confirmation 字段被标记为必需,但为空 - 因为它在上次保存时被删除。
这只是愚蠢的,我不知道是Eloquent,Ardent还是我的错。如果它在保存前有效,那么它在保存后也应该有效 - 对吧?我将更改问题的标题以反映问题的真正原因。
php - Make Ardent in Laravel not requiring new password on save
I'm doing user editing facility for my admin panel. I want to ignore empty password on update, but not on create.
I have following validation rules for User model:
But it doesn't let me update user model when I don't pass password to it. It just complains about not having a password.
How to make it work?
php - 使用 updateUniques() 时 Laravel Ardent 不保存模型
我正在为我的管理面板做用户编辑工具。我在我的代码中使用 updateUniques(),正如 Ardent 在模型中有“唯一”规则时所推荐的那样。
当我这样做时,它没有问题地通过,但模型没有改变。
我的代码: