laravel 中未定义路由 [signup]
Route [signup] not defined in laravel
我是 Laravel 的新手。我正在学习如何创建用户注册页面。一切正常,但我陷入了一个简单的问题。
ErrorException in UrlGenerator.php line 304:
Route [signup] not defined. (View: 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();
Blade 文件是 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
尝试
<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>
laravel 提供内置身份验证功能,您在 select 项目后在终端中键入以下命令:
php artisan make:auth
并且您可以使用登录、注册和更改密码功能。
另请参阅 laravel 身份验证
希望对你有所帮助
只是为了完整起见,正如@StuartWagner 回复的那样,因为 Laravel 5.4 所有路线都在 /routes
文件夹内,而不是在 HTTP
文件夹内。
Web 路由在 /routes/web.php
文件中。
这经常被要求,否则,您将需要深入浏览三个级别才能获得路线。
现在好多了,它们在 /routes
文件夹中。
您可以将 {{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>
我知道它有点旧但想贡献 :)
Route::post('/signup', [uses' => 'UserController@postSignUp','as' => 'signup']);
为路线添加名称
Route::post('/signup', [uses' => 'UserController@postSignUp','as' => 'signup'])->name(signup);
当您在 blade 模板中使用路由时,您必须为路由指定名称以识别
<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 的新手。我正在学习如何创建用户注册页面。一切正常,但我陷入了一个简单的问题。
ErrorException in UrlGenerator.php line 304: Route [signup] not defined. (View: 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();
Blade 文件是 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
尝试
<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>
laravel 提供内置身份验证功能,您在 select 项目后在终端中键入以下命令:
php artisan make:auth
并且您可以使用登录、注册和更改密码功能。 另请参阅 laravel 身份验证
希望对你有所帮助
只是为了完整起见,正如@StuartWagner 回复的那样,因为 Laravel 5.4 所有路线都在 /routes
文件夹内,而不是在 HTTP
文件夹内。
Web 路由在 /routes/web.php
文件中。
这经常被要求,否则,您将需要深入浏览三个级别才能获得路线。
现在好多了,它们在 /routes
文件夹中。
您可以将 {{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>
我知道它有点旧但想贡献 :)
Route::post('/signup', [uses' => 'UserController@postSignUp','as' => 'signup']);
为路线添加名称
Route::post('/signup', [uses' => 'UserController@postSignUp','as' => 'signup'])->name(signup);
当您在 blade 模板中使用路由时,您必须为路由指定名称以识别
<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>