2016-11-30 48 views
0

版本:Laravel 5.2Laravel 5.2出现奇怪:方法[validateNickName]不存在

问题:

BadMethodCallException in Validator.php line 3295: 
Method [validateNickName] does not exist. 
in Validator.php line 3295 
at Validator->__call('validateNickName', array('nick_name', 'chenmin', array(), object(Validator))) in Validator.php line 485 
at Validator->validateNickName('nick_name', 'chenmin', array(), object(Validator)) in Validator.php line 485 
at Validator->validate('nick_name', 'nick_name') in Validator.php line 425 
at Validator->passes() in Validator.php line 450 
at Validator->fails() in ValidatesRequests.php line 53 
at Controller->validate(object(Request), array('nick_name' => 'required|nick_name|unique:users|max:30', 'cellphone' => 'required|cellphone|unique:users|numeric|phone_number|size:11', 'captcha' => 'required|numeric|size:6', 'password' => 'required|min:6|max:30')) in UserController.php line 19 
at UserController->postSignUp(object(Request)) 
at call_user_func_array(array(object(UserController), 'postSignUp'), array(object(Request))) in Controller.php line 80 
at Controller->callAction('postSignUp', array(object(Request))) in ControllerDispatcher.php line 146 
at ControllerDispatcher->call(object(UserController), object(Route), 'postSignUp') in ControllerDispatcher.php line 94 
at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 
at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 96 
at ControllerDispatcher->callWithinStack(object(UserController), object(Route), object(Request), 'postSignUp') in ControllerDispatcher.php line 54 
at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\UserController', 'postSignUp') in Route.php line 174 
at Route->runController(object(Request)) in Route.php line 140 
at Route->run(object(Request)) in Router.php line 724 
at Router->Illuminate\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in VerifyCsrfToken.php line 64 
at VerifyCsrfToken->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49 
at ShareErrorsFromSession->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64 
at StartSession->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37 
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59 
at EncryptCookies->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 
at Pipeline->then(object(Closure)) in Router.php line 726 
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 699 
at Router->dispatchToRoute(object(Request)) in Router.php line 675 
at Router->dispatch(object(Request)) in Kernel.php line 246 
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44 
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 
at Pipeline->then(object(Closure)) in Kernel.php line 132 
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99 
at Kernel->handle(object(Request)) in index.php line 54 

源代码:

namespace App\Http\Controllers; 
use App\User; 
use Illuminate\Http\Request; 
use Illuminate\Support\Facades\Auth; 

class UserController extends Controller 
{ 
    public function postSignUp(Request $request) 
    { 
     $this->validate($request, [ 
       'nick_name' => 'required|nick_name|unique:users|max:30', 
       'cellphone' => 'required|cellphone|unique:users|numeric|phone_number|size:11', 
       'captcha' => 'required|numeric|size:6',   
       'password' => 'required|min:6|max:30' 

     ]); 
....... 

当我测试从输入,遇到了一个奇怪的问题:Validator.php行3295中的BadMethodCallException:Method [validateNickName]不存在。

谁能帮我解决呢?非常感谢!

+2

从验证参数中除去'nick_name'。除非你扩展了Validator并添加了你自己的验证,否则它将不存在。 “手机”也一样。 – aynber

+0

非常感谢 – Baren

回答

2

nickn_namecell_phonephone_number是不是验证规则? 所以你不能把它们放在规则字符串中。您的验证规则应如下所示:

$this->validate($request, [ 
     'nick_name' => 'required|unique:users|max:30', 
     'cellphone' => 'required|unique:users|numeric|size:11', 
     'captcha' => 'required|numeric|size:6',   
     'password' => 'required|min:6|max:30' 
]); 
+0

谢谢你的方法我已经解决了这个问题! – Baren

+0

不客气。如果这解决了您的问题,请不要忘记批准答案。 – Imran

+0

好的我已经批准 – Baren

0

我认为是因为你使用snake_case作为nick_name,并且不知何故验证程序认为你正在调用一个名为nickName的自定义验证规则(当调用助手时,Laravel的位总是将snake_case转换为camelCase)......为什么你会请致电nicknamenick_name?在英文中,我认为只是一个词...

+0

'手机'相同的问题 – Baren

+0

@Baren你是对的,他不应该把它们放在'''之后'''''''' – vikkio

相关问题