我这里有两个Jquery函数,第一个根据用户下拉选择选项执行ajax加载,然后根据返回的值更改输入字段.这很好用.
//perform a background ajax load and get the allocation available if any
$("#ministry").change(function(){
var ministry=$("#ministry").val();
var url="/VoteBook/ministry.php?mini="+ministry;
$.get(url, function(data,status){
$(".alloc").val(data);
})
});
Run Code Online (Sandbox Code Playgroud)
然后第二个函数应该监听上面指定的输入字段的变化,如果输入字段中的值是0,它应该禁用表单中的所有输入字段.看来,'jquery on change'功能不会通过输入字段上的ajax检测到更改.任何帮助都非常感谢.
//disable all inputs on allocation field change
$(".alloc").change(function(){
var allocation=$(".alloc").val();
if(allocation==0){
$("#add_vote_form :input").attr('disabled', true);
}
});
Run Code Online (Sandbox Code Playgroud) 我有一个 artisan 命令,它触发一个名为PasswordResetJob的作业,该作业在调用存储库类OrgRepository中的ForcePasswordReset方法时进行迭代,该方法更新用户的表。整个过程运行良好。
现在,我尝试编写一个 Laravel 测试来模拟OrgRepository类,并断言强制密码重置方法至少被调用一次,根据我提供给测试的条件,情况应该是这样。在测试中,我调用artisan命令来解雇工作;(我正在使用同步队列进行测试)当作业被调用并且用户的表被更新时,这工作得很好,因为我可以直接查看数据库更新。但是,测试失败并出现错误:Mockery\Exception\InvalidCountException:Mockery_2_Repositories_OrgRepository 中的方法forcePasswordReset() 应该至少调用 1 次,但调用了 0 次。
测试中的工匠调用是:
Artisan::call('shisiah:implement-org-password-reset');
Run Code Online (Sandbox Code Playgroud)
我之前和模拟初始化之后都尝试过进行 artisan 调用,但仍然遇到相同的错误。这是测试中的模拟初始化
$this->spy(OrgRepository::class, function ($mock) {
$mock->shouldHaveReceived('forcePasswordReset');
});
Run Code Online (Sandbox Code Playgroud)
我缺少什么?我已经阅读了文档并通过谷歌搜索了几个小时。如果您需要任何其他信息来帮助,请告诉我。我使用的是Laravel 6.0 版本
我将OrgRepository类传递给作业类的handle方法,如下所示:
public function handle(OrgRepository $repository)
{
//get orgs
$orgs = Org::where('status', true)->get();
foreach ($orgs as $org){
$repository->forcePasswordReset($org);
}
}
Run Code Online (Sandbox Code Playgroud)