我有一个非常奇怪的问题。当我提交表单时,它会在服务器端验证时抛出错误。
这是我的简单控制器:
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 方法验证不存在。
它应该按照:
工作答案 0 :(得分:31)
在docs中说:
$this->validate($request, [
'email' => 'required|email',
]);
此字符串 - 有效:)
答案 1 :(得分:7)
你应该试试这个:
$validateFields = array('email' => 'required|email');
$this->validate($request, $validateFields);
或强>
$this->validate($request, [
'email' => 'required|email'
]);
希望这对你有用!!!!
答案 2 :(得分:4)
好的意思是它在5.4中不再可用,但它在控制器中可用
尝试:
$this->validate($request, [
'email' => 'required|email',
]);
答案 3 :(得分:3)
$validator = \Validator::make($request->all(), [
'mobile_number' => 'required',]);
if ($validator->fails()) {
return redirect()->back()
->withErrors($validator)
->withInput();
}
希望这对你有用..
答案 4 :(得分:3)
实际上如果添加正确的控制器,则应该已经包含了validate方法。您可以尝试添加以下控制器。
相反:
use App\Http\Controllers\Controller;
答案 5 :(得分:1)
您可以使用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 :(得分:0)
让我们添加这两个包 祝你好运
使用Illuminate \ Support \ Facades \ Validator; 使用Illuminate \ Foundation \ Auth \ RegistersUsers;
答案 7 :(得分:0)
更改后添加验证器服务并清除缓存
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
答案 8 :(得分:0)
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);
}