You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.2报错:UserController::Signup()方法不存在,求助

问题分析与解决办法

嘿,这个问题其实一眼就能看出来——你遇到的ReflectionException完全是因为路由里指定的控制器方法和实际存在的方法不匹配!

问题根源

你在路由里写的是:

'uses' => 'UserController@Signup'

但你的UserController里定义的方法是postSignUp,不管是方法名的拼写(Signup vs postSignUp)还是大小写(首字母大写的Signup)都对不上,Laravel找不到对应的方法,自然就抛出了这个错误。

两种修正方案

方案一:修改路由(推荐)

保持控制器的postSignUp命名(这是Laravel里对应POST请求的常用命名规范),把路由里的方法名改成正确的postSignUp:

Route::post('/signup', [
    'uses' => 'UserController@postSignUp',
    'as' => 'signup',
]);

方案二:修改控制器方法名

如果你想保持路由里的Signup写法,那把控制器里的方法名改成Signup(注意大小写要完全一致):

public function Signup(Request $request) {
    // 原postSignUp里的代码不变
    $email = $request['email'];
    $first_name = $request['first_name'];
    $password = bcrypt($request['password']);
    
    $user = new User();
    $user->email = $email;
    $user->first_name = $first_name;
    $user->password = $password;
    $user->save();
    
    return redirect()->back();
}

验证其他部分

你的控制器代码逻辑和welcome视图的表单部分都是没问题的,只要修正路由和控制器方法的对应关系,提交表单就不会报错了。另外注意Laravel 5.2里的web中间件组已经默认包含了会话、CSRF保护等必要功能,你当前的路由分组配置是正确的。


原代码参考

UserController(原代码)

<?php 
namespace App\Http\Controllers; 

use App\User; 
use Illuminate\Http\Request; 

class UserController extends Controller { 
    public function postSignUp(Request $request) { 
        $email = $request['email']; 
        $first_name = $request['first_name']; 
        $password = bcrypt($request['password']); 

        $user = new User(); 
        $user->email = $email; 
        $user->first_name = $first_name; 
        $user->password = $password; 
        $user->save(); 

        return redirect()->back(); 
    } 

    public function postSignIn(Request $request) { 

    } 
} 

Routes(原代码)

<?php 
/* 
|-------------------------------------------------------------------------- 
| Application Routes 
|-------------------------------------------------------------------------- 
| 
| Here is where you can register all of the routes for an application. 
| It's a breeze. Simply tell Laravel the URIs it should respond to 
| and give it the controller to call when that URI is requested. 
| 
*/ 

Route::group(['middleware' => ['web']], function () { 
    Route::get('/', function () { 
        return view('welcome'); 
    }); 

    Route::post('/signup', [ 
        'uses' => 'UserController@Signup', 
        'as' => 'signup', 
    ]); 
}); 

welcome.blade.php(原代码)

@extends('layouts.master') 

@section('title') Welcome! @endsection 

@section('content') 
<div class="row"> 
    <div class="col-md-6"> 
        <h2>Sign Up</h2> 
        <form action="{{route('signup')}}" method="post"> 
            <div class="form-group"> 
                <label for="email">Your Email</label> 
                <input class="form-control" type="text" name="email" id="email"> 
            </div> 
            <div class="form-group"> 
                <label for="first_name">Your First Name</label> 
                <input class="form-control" type="text" name="first_name" id="first_name"> 
            </div> 
            <div class="form-group"> 
                <label for="password">Your Password</label> 
                <input class="form-control" type="text" name="password" id="password"> 
            </div> 
            <button type="submit" class="btn btn-primary">Submit</button> 
            <input type="hidden" name="_token" value="{{Session::token()}}"> 
        </form> 
    </div> 
    <div class="col-md-6"> 
        <h2>Sign In</h2> 
        <form action="#" method="post"> 
            <div class="form-group"> 
                <label for="email">Your Email</label> 
                <input class="form-control" type="text" name="email" id="email"></div> 
            <div class="form-group"> 
                <label for="password">Your Password</label> 
                <input class="form-control" type="text" name="password" id="password"></div> 
            <button type="submit" class="btn btn-primary">Submit</button> 
        </form> 
    </div> 
</div> 
@endsection

内容的提问来源于stack exchange,提问作者cdscomputer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:58:58