Php 我的Laravel测试返回的是302重定向,而不是403禁止状态

Php 我的Laravel测试返回的是302重定向,而不是403禁止状态,php,laravel,testing,Php,Laravel,Testing,我有一个名为Type的模型,它有一个title字段和一个pretty\u slug字段 我有一个测试,检查用户是否无法更新类型实例: 我认为问题在于'levels.update'路由可能受到auth中间件的保护 由于没有用户登录,auth中间件将尝试重定向到登录页面。我喜欢IGP的答案。但如果不是这样,您可能需要检查主机配置。Apache或Nginx,或者您正在使用的任何东西。可能是路由正在通过http调用,而您的服务器正在重定向到https,或者是visa重定向到https。多亏了@Aless

我有一个名为
Type
的模型,它有一个
title
字段和一个
pretty\u slug
字段

我有一个测试,检查用户是否无法更新
类型
实例:


我认为问题在于
'levels.update'
路由可能受到
auth
中间件的保护


由于没有用户登录,
auth
中间件将尝试重定向到登录页面。

我喜欢IGP的答案。但如果不是这样,您可能需要检查主机配置。Apache或Nginx,或者您正在使用的任何东西。可能是路由正在通过http调用,而您的服务器正在重定向到https,或者是visa重定向到https。

多亏了@Aless55,我发现了问题:是验证了我的
类型
模型,阻止了我更新实例

我查看了
StoreType
文件,其中我有:

“订单”=>“必需”|数字”,
这意味着需要
订单
字段。但是当我尝试调用
类型.update
路由时,我没有包括该字段

一个解决方案是将该字段设置为可选字段。但我最终在测试中包含了
order
字段:

$response=$this->put(路由('types.update')[
'pretty_slug'=>$type->pretty_slug,
“title'=>“Alex新类型”,
“顺序”=>1,
]));

你能告诉我们管制员和路线吗?@Aless55我已经更新了帖子。正如您所看到的,对于
类型
级别
模型,控制器方法和路由结构都是相同的。您确定authorize()工作正常吗?实际上@ales55我查看了
存储类型
文件,得到了
所需的“订单”=>“数字”
。我将其更改为
'order'=>'numeric',
,这样就不需要
顺序了。而且…它起作用了。似乎当我尝试调用
类型.update
时,我没有包含
顺序
字段,因此它可能重定向到同一个表单。我很高兴您发现了问题,有时小事情占用了
级别的大部分时间。update
工作正常。导致问题的是
类型.update
。并且没有为这些路由启用
auth
中间件。