Laravel 5.4 - 在已经登录的情况下创建另一个用户帐户
Posted
技术标签:
【中文标题】Laravel 5.4 - 在已经登录的情况下创建另一个用户帐户【英文标题】:Laravel 5.4 - Create Another User Account while already logged in 【发布时间】:2019-03-20 01:52:35 【问题描述】:我目前正在学习 Laravel,并且无法从现有帐户添加用户帐户。当我提交表单时,我在第 251 行收到MethodNotAllowedHttpException
。这通常与未将 web.php 中的帖子与帖子表单匹配有关,但添加此内容并没有解决任何问题。
我相信一切都已正确声明,但如果您发现任何问题,我将不胜感激。
adduser.blade
<div id="form-header">
Create another user account
</div>
<div id="form-container">
<form class="form-horizontal" method="POST">
csrf_field()
<!--form variable-->
<div class="form-group">
<!-- form inputs -->
</div>
<div class=" form-group">
<button type="submit">
Create
</button>
</div>
</form>
</div>
web.php
Route::get('/adduser', 'AddUserController@index');
Route::post('/adduser', 'AddUserController@create_user');
添加用户控制器
public function index()
return view('adduser');
public function create_user(Request $request)
return User::create(['input' => '$request->input']);
【问题讨论】:
这是绊倒的路线,而不是其余的路线。我建议在您的表单中添加一个操作,以便清楚它需要到达哪条路线。 是这样吗?如果您使用的是/adduser
,并且您提交了一个没有action
的POST
表单,则它应该发布到当前的URL,即/adduser
。
我原以为不设置操作也会将其设置为当前 url,但尝试设置操作也不会更改
我觉得你的退货声明不正确。可能应该是 User::create(...); return redirect("/adduser");
或 redirect
到其他地方。
我的工作代码目前允许现有用户正常更新数据库信息,所以我正在复制该模板。谢谢蒂姆,我会考虑更改 return 语句,看看是否有帮助。
【参考方案1】:
我在这里遇到了两个错误,尽管我的问题中没有包含第二个错误(我认为是致命的可抛出错误)。我必须在 adduser 控制器中添加 use app/user,对于最初的路由错误,这是人为错误,我有两个同名的刀片,但一个有大写字母,我正在编辑错误的文件。我已将其删除并将上面的代码放入正确的刀片中。
只是个人说明:如果您使用 cmets 中提到的当前 url,则无需声明方法操作。
【讨论】:
【参考方案2】:您已指定表单应为 POST,但尚未指定要发布到的路由。
改变
<form class="form-horizontal" method="POST">
到
<form class="form-horizontal" action="url('adduser')" method="POST">
【讨论】:
谢谢,但我尝试过这样的事情。我会尝试其他一些变体,也许它会喜欢其中一种......以上是关于Laravel 5.4 - 在已经登录的情况下创建另一个用户帐户的主要内容,如果未能解决你的问题,请参考以下文章