方法验证不存在 - Laravel 5.4

Par*_*ora 16 php validation laravel laravel-5 laravel-5.4

我有一个非常奇怪的问题.当我提交表单时,它会在服务器端验证时抛出错误.

这是我的简单控制器:

namespace App\Http\Controllers;

use Newsletter;
use Illuminate\Http\Request;

class SubscriptionController extends Controller
{
    public function subscribe(Request $request)
    {
        $request->validate([
            'email' => 'required|email',
            ]);
    }
}
Run Code Online (Sandbox Code Playgroud)

提交表格给我:

BadMethodCallException方法验证不存在.

它应该按照:

https://laravel.com/docs/5.4/validation

小智 32

在文档中说:

$this->validate($request, [
    'email' => 'required|email',
]);
Run Code Online (Sandbox Code Playgroud)

这个字符串 - 工作:)


Add*_*Ltd 7

你应该试试这个:

$validateFields = array('email' => 'required|email');

$this->validate($request, $validateFields);
Run Code Online (Sandbox Code Playgroud)

要么

$this->validate($request, [
    'email' => 'required|email'
]);
Run Code Online (Sandbox Code Playgroud)

希望这对你有用!!!!


Eme*_*bah 5

好吧意味着它在 5.4 中不再可用,但它在控制器中可用

尝试:

 $this->validate($request, [
    'email' => 'required|email',
 ]);
Run Code Online (Sandbox Code Playgroud)


Vij*_*ada 5

        $validator = \Validator::make($request->all(), [
            'mobile_number' => 'required',]);

        if ($validator->fails()) {
            return redirect()->back()
            ->withErrors($validator)
            ->withInput();
        }
Run Code Online (Sandbox Code Playgroud)

希望这对你有用..