【问题标题】:Laravel NotFoundHttpException in RouteCollection.php line 161:RouteCollection.php 第 161 行中的 Laravel NotFoundHttpException:
【发布时间】:2016-04-28 05:05:31
【问题描述】:

当我遇到这个错误时,我很难解决这个错误,我的解决方案是创建新项目。我知道这个问题总是在这里问。我逐行遵循所有教程,但总是出错。

注册:

 @extends('layouts.master')
 @section('content')
  <div class="col-md-6">
    <form method="POST" action="{{ route('signup') }}">
        <div class="form-group">
            <input type="text" name="username" placeholder="Username" class="form-control"></input>
        </div>
        <div class="form-group">
            <input type="password" name="password" placeholder="Password" class="form-control"></input>
        </div>
        <div class="form-group">
            <input type="submit" value="Submit" class="btn btn-primary pull-right"></input>
            <input type="hidden" name="_token" value="{{ Session::token() }}"></input>
        </div>
    </form>
</div>
@endsection

routes.php

 <?php

 Route::get('/', function () {
    return view('welcome');
});

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

用户控制器

 <?php

 namespace App\Http\Controllers;
 use Illuminate\Http\Request;
 use App\Http\Requests;
 use App\User;

 class UserController extends Controller
 {
 public function postSignUp(Request $request){

    $username = $request['username'];
    $password = bcrypt($request['password']);

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

    return redirect()->back();
  }
}

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    我没有为您的表单看到 get 路由。仅当您提交表单时,您的发布路线才会起作用。

    所以,在你的 routes.php 中,应该有类似

       <?php
    
        Route::get('/', function () {
             return view('welcome');
        });
    
        Route::get('/signup', [
            'uses' => 'UserController@getSignUp',
            'as' => 'signup'
        ]);
    
        Route::post('/signup', [
            'uses' => 'UserController@postSignUp',
            'as' => 'signup'
        ]);
    

    而且,在 UserController@getSignUp 中,您只需加载表单的视图。

    【讨论】:

    • 您能否在我的回答中添加get Route 并告诉我发生了什么
    • 你用的是什么版本?希望你也在你的控制器中定义了 getSignUp 。另外,从你的命令行运行 php artisan route:list。并请发表回应。
    • @MajikeroGallardo 检查mod_rewrite 已启用。很可能它应该是路线的问题。您能否告诉我在将其添加到路由后调用sometesting 时会得到什么。 Route::get('/sometesting', function () { return 'Hello World'; });
    • RouteCollection.php 第 161 行中的 NotFoundHttpException:
    【解决方案2】:

    //你的blade文件没问题,你可以用同样的

    //你的路线

    Route::get('/signup', function () {     //route1 to view form
        return view('signUp');
    });
    
    Route::post('/signup', [               // route2 to handle form request
        'uses' => 'UserController@postSignUp',
        'as' => 'signup'
    ]);
    

    要查看您的表单,您必须使用 get 方法,即 route1,提交表单后,您的 postSignUp 方法将重定向到 get route,即 route1。

    //你的控制器

    public function postSignUp(Request $request){
    $username = $request->username;      //to access username 
    $password = bcrypt($request->password); //to access password
    
    
    
    $user = new User();
    $user->name = $username;
    $user->password = $password;
    $user->save();
    
    return redirect()->back();
    }
    

    在您的刀片文件中,您分别使用名称作为用户名和密码作为用户名和密码。所以在用户 Usercontroller 中,您可以分别以 $request->username 和 $request->password 作为用户名和密码直接访问它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 2016-07-03
      • 2016-10-13
      • 1970-01-01
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多