路线[注册]未在laravel中定义

时间:2017-02-18 05:22:35

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

我是Laravel的新手。我正在学习如何创建用户注册页面。一切正常,但我陷入了一个简单的问题。

  

UrlGenerator.php第304行中的ErrorException:   路线[注册]未定义。 (查看:C:\ Program Files(x86)\ Ampps \ www \ social \ resources \ views \ welcome.blade.php)

但我定义了注册路线。这是我的 routes.php 文件

Route::get('/', function () {
  return view('welcome');
})->name('home');
Route::post('/signup', [
    'uses' => 'UserController@postSignUp',
    'as' => 'signup'
]);

这是我的 UserController.php

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


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

        $user->save();

        return redirect()->back();

刀片文件 welcome.blade.php

 <form action="{{ route('signup') }}" method="post">
         <div class="form-group">
           <label for="email"> Your E-mail </label>
           <input class ="form-control" type="text" id="email" name="email" >
         </div>

如果有人能帮助我,我会非常感激。 感谢

哦,抱歉。我忘了提到我使用 Laravel版本:5.4.11

5 个答案:

答案 0 :(得分:3)

您可以将{{route('/signup')}}更改为{{URL('/signup')}}

<form action="{{ URL('signup') }}" method="post">
    <div class="form-group">
    <label for="email"> Your E-mail </label>
   <input class ="form-control" type="text" id="email" name="email" >
  </div>

答案 1 :(得分:1)

laravel提供内置的auth功能,在选择项目后在终端中键入以下命令:

php artisan make:auth

您可以使用登录,注册和更改密码功能。

参考:

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

我希望它可以帮助你

答案 2 :(得分:1)

仅仅为了完整性,正如@StuartWagner自Laravel 5.4以来回复的所有路由都在/routes文件夹内,而不再在HTTP文件夹内。

网络路由位于/routes/web.php文件中。

这经常被要求,否则你需要深入浏览三个级别才能获得路线。

现在好多了,它们位于/routes文件夹中。

答案 3 :(得分:0)

尝试

<form action="/signup" method="POST">
         <div class="form-group">
           <label for="email"> Your E-mail </label>
           <input class ="form-control" type="text" id="email" name="email" >
         </div>

答案 4 :(得分:0)

我知道它有些旧了,但想贡献一点:)

$("table#myTable tr td").on('click', function() {
    let index = $(this).index();
    $(`#myTable tr td:nth-child(${index + 1})`).addClass('td-active');
});

为路线添加名称

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

在刀片模板中使用路径时,必须给路径指定名称以标识

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