【问题标题】:Method validate does not exist - Laravel 5.4方法验证不存在 - Laravel 5.4
【发布时间】:2018-01-29 10:24:59
【问题描述】:

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

这是我的简单控制器:

namespace App\Http\Controllers;

use Newsletter;
use Illuminate\Http\Request;

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

提交表格给我:

BadMethodCallException 方法 validate 不存在。

它应该根据:

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

【问题讨论】:

  • 链接页面没有提到 $request->validate 。虽然它多次提到$this->validate($request,...)
  • @apokryfos 是的,我后来也发现了,我的错。

标签: php laravel validation laravel-5 laravel-5.4


【解决方案1】:

在文档中说:

$this->validate($request, [
    'email' => 'required|email',
]);

这个字符串 - 有效:)

【讨论】:

  • 也适用于 Lumen。
【解决方案2】:

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

试试:

 $this->validate($request, [
    'email' => 'required|email',
 ]);

【讨论】:

    【解决方案3】:

    你应该试试这个:

    $validateFields = array('email' => 'required|email');
    
    $this->validate($request, $validateFields);
    

    $this->validate($request, [
        'email' => 'required|email'
    ]);
    

    【讨论】:

      【解决方案4】:
              $validator = \Validator::make($request->all(), [
                  'mobile_number' => 'required',]);
      
              if ($validator->fails()) {
                  return redirect()->back()
                  ->withErrors($validator)
                  ->withInput();
              }
      

      希望这对你有用..

      【讨论】:

        【解决方案5】:

        您可以使用 Validator 服务提供者。

             namespace App\Http\Controllers;
        
             use Newsletter;
             use Illuminate\Http\Request;
             use Validator;
        
             class SubscriptionController extends Controller
             {
                  public function subscribe(Request $request)
                  {
                           $request->validate($request->all(),[
                             'email' => 'required|email',
                          ]);
                   }
        

        【讨论】:

          【解决方案6】:

          让我们添加这两个包 祝你好运

          使用 Illuminate\Support\Facades\Validator; 使用 Illuminate\Foundation\Auth\RegistersUsers;

          【讨论】:

          • 请不要发布未经测试的答案。
          【解决方案7】:

          其实如果你添加了正确的控制器, validate 方法应该已经包含了。您可以尝试添加以下控制器。

          相反: use App\Http\Controllers\Controller;

          【讨论】:

            【解决方案8】:

            更改后添加验证器服务并清除缓存

            namespace App\Http\Controllers;
            
            use Illuminate\Http\Request;
            use Illuminate\Foundation\Validation\ValidatesRequests;
            
            class RecaptchaController extends Controller
            {
                public function store(Request $request) {
                    $this->validate($request,[
                        'name' => 'required',
                        'email' => 'required|email',
                        'phone' => 'required|min:10',
                        'g-recaptcha-response' => 'required|captcha'
                    ]);
            
                    return "success";
                }
            }
            

            您可以在终端上使用以下 artisan 命令清除缓存。 注意:记得检查你运行命令的目录。

            php artisan cache:clear
            

            【讨论】:

              【解决方案9】:
              You can use regex pattern of this email validation.
              
              protected function validator(array $data)
              {
                  $messages = array('email.regex' => 'Your email id is not valid.');
                  return Validator::make($data, [
                      'email' => 'required|email|max:255|regex:/(.*)@myemail\.com/i|unique:users',
                   ],$messages);
              }
              

              【讨论】:

                猜你喜欢
                • 2017-10-13
                • 1970-01-01
                • 2017-10-19
                • 2014-09-04
                • 1970-01-01
                • 2018-10-12
                • 1970-01-01
                • 2014-10-02
                • 2017-12-17
                相关资源
                最近更新 更多