laravel 错误500请不传递任何内容、规则数组或FormRequest类

p8ekf7hl  于 2023-03-19  发布在  其他
关注(0)|答案(1)|浏览(101)

我已经用Backpack for Laravel在我的本地应用开发计算机上生成了一个超级简单的管理 Jmeter 板,现在我用Git把它推送到一个远程的“中心”服务器(我自己的,不是GitHub),然后拉到一个远程的“测试版”服务器进行测试。
一切看起来都很好...我可以在生成的几个CRUD之间导航,数据看起来正常,等等。
但是当我点击编辑链接或点击+ Add <entity>按钮时,我得到

ERROR
500
It's not you, it's me.
Please pass setValidation() nothing, a rules array or a FormRequest class.

感谢Git,App Dev和Beta的代码库应该是相同的。但是很明显,在某个地方出现了一些差异。这个错误消息是否向任何人暗示了差异可能在哪里?
详情:

PHP 7.4.33 on Beta, 7.4.19 on App Dev
LARAVEL v8.83.27 on both
backpack/crud: 5.5.1 on both
backpack/generators: 3.3.16 on both

谢谢!

rsaldnfx

rsaldnfx1#

您的CrudController之一似乎试图向CRUD::setValidation(...)方法发送无效参数。
如错误所述,setValidation允许 “规则数组或FormRequest类”
通常,我会选择FormRequest类,它类似于CRUD::setValidation(EntityRequest::class)。还要注意的是,您可能在控制器中使用了两次此方法,分别是setupCreateOperationsetupUpdateOperation

public function setupCreateOperation()
{
    CRUD::setValidation(EntityRequest::class);
}

public function setupUpdateOperation()
{
    CRUD::setValidation(EntityRequest::class);
}

您也可以发送一个rules数组,正如文档所指出的;

CRUD::setValidation([
    'name' => 'required|min:2',
    // ...
]);

请检查您使用setValidation的位置,因为其中至少有一个错误。
边注,如果你正在开始一个新的项目,我强烈建议你使用最新的PHP (8.2,或至少8.1) 和最新的Laravel (10)

相关问题