我有一个用于创建包含电子邮件,名称和密码输入的用户的表单。该表格还具有用于用户地址的5个输入(addr1-5)。奇怪的405在Laravel中不允许的方法
提交没有填写地址字段的表单工作正常,并创建用户。
但是,如果填写地址字段,则会显示405 Method Not Allowed
响应。
路线:
Route::group(['prefix' => '/users'], function() {
Route::post('/create', [
'uses' => '[email protected]',
'as' => 'api_create_user',
]);
});
形式:
<form action="{{ route('api_create_user') }}" method="POST">
...
<input type="text" name="addr1">
<input type="text" name="addr2">
<input type="text" name="addr3">
<input type="text" name="addr4">
<input type="text" name="addr5">
...
</form>
控制器:
class UserController extends Controller {
...
public function create (RegisterRequest $request) {
...
$address = [
'addr1' => $request->input('addr1') ?? '',
'addr2' => $request->input('addr2') ?? '',
'addr3' => $request->input('addr3') ?? '',
'addr4' => $request->input('addr4') ?? '',
'addr5' => $request->input('addr5') ?? '',
];
$address = (object)array_filter($address);
$user->address = $address;
...
}
}
RegisterRequest:
class RegisterRequest extends FormRequest {
...
public function rules() : array {
return array(
...
'addr1' => 'nullable|string',
'addr2' => 'nullable|string',
'addr3' => 'nullable|string',
'addr4' => 'nullable|string',
'addr5' => 'nullable|string',
...
);
}
...
}
我真的无法弄清楚问题所在。这显然不是语法我肯定导入正确的类等
任何想法?
谢谢!
您可以发布'PHP工匠路线的输出:list'? – ceejayoz
使用浏览器的“网络”选项卡,检查“POST”到的路由;也许它正在做一些意想不到的事情,或者在某个不该做的地方执行重定向。 –
只是一个FYI,当使用'input()'so'$ request-> input('add1')?时,您可以指定默认值作为第二个参数。 '''会是'$ request-> input('add1','')'。此外,因为你只是要过滤结果,无论如何可以执行'$ address =(object)array_filter($ request-> only('addr1','addr2','addr3','addr4','addr5 '));' –