- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个具有以下验证规则的用户 Controller :
public function store(Request $request)
{
...
$this->validate($request, [
'name' => 'required',
'email' => 'email|required|unique:users',
'password' => 'confirmed|max:32|min:8|required',
'roles' => 'exists:roles,id|required',
]);
$user = new User();
$user->fill($request->all());
...
}
我的 User.php 模型将可填充属性定义为:
protected $fillable = ['name', 'email'];
要通过 confirmed
验证,我必须在 POST 请求中发送 password
和 password_confirmation
字段。
在开发过程中一切正常,但在单元测试中我遇到了数据库错误。它尝试将数据插入 password_confirmation 列。就像它忽略了 $fillable
数组一样。
我知道“laravel 在测试之间丢失事件处理程序”错误/问题(https://github.com/laravel/framework/issues/1181)。所以我认为除了 Model::boot()
(我在测试中调用 User::boot()
setUp()
函数)。
谢谢,
阅读 Model.php 源代码,我发现有人在调用 Model::unguard()
https://github.com/laravel/framework/blob/5.1/src/Illuminate/Database/Eloquent/Model.php#L2180在 setUp() 函数之后和测试之前。如果我在测试开始时调用 User::reguard()
它会通过,但是(我不知道为什么),会多次调用 unguard() 和 reguard() 函数,并且测试变得非常慢。
最佳答案
发现问题:v5.0.x 中的 base seeder 只调用了 Model::unguard() ( https://github.com/laravel/laravel/blob/v5.0.22/database/seeds/DatabaseSeeder.php#L15 ) 而 v5.1.x 更新并添加了对 Model::reguard() 的调用 ( https://github.com/laravel/laravel/blob/v5.1.0/database/seeds/DatabaseSeeder.php#L19 ) (我使用的是 v5.0.22)。
关于php - 拉维尔 5 : Model->fill() ignores $fillable property in unit tests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30940847/
这就是 Laravel 文档所说的: To get started, you should define which model attributes you want to make mass as
我已经设置了变量 $fillable在我的模型中。我想测试 update功能,我收到此错误: SQLSTATE[42S22]: Column not found: 1054 Unknown colum
我有模型: use seoTrait; protected $fillable = [ 'name', 'title', 'description' ]; 我在 $fillable 中创建了特
我正在尝试更新一个 orders 表,该表具有通过 customer_id 链接到客户表的外键约束。 迁移文件(100% 有效): Schema::create('orders', function
在我 Controller 的更新操作中,我正在做: $fields = $request->all(); $snippet = Snippet::findOrFail($id); $snippet-
所以当我在我的 Laravel 5 网站上发帖请求时出现这个错误: Cannot redeclare App\Subscription::$fillable 这是我的 SubscriptionCont
我有一个简单的模型 IsolatedQuery,它由一个 name 和 query 字段组成。我已经在模型的 $fillable 属性中定义了这两个字段。 IsolatedQueryControlle
我有两个可填写的 pdf 文件,并编写了将这些 pdf 合并为一个 pdf 的代码。下面是我的代码。 public void PDFSplit() { List files=new List(
我有一个具有以下验证规则的用户 Controller : public function store(Request $request) { ... $this->validate($
User.php代码,在这里,无论我使用 fillable 还是 gaurded,我都会得到同样的错误。 'datetime', ]; } UserController.php代码,在这里,
我是一名优秀的程序员,十分优秀!