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,并且您提交了一个没有actionPOST 表单,则它应该发布到当前的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 - 在已经登录的情况下创建另一个用户帐户的主要内容,如果未能解决你的问题,请参考以下文章

同一域名下的两个laravel项目

laravel 5.4,添加二次认证(管理面板)

Laravel 5.4 登录后重定向到自定义 url

如何在 Laravel 5.4 中添加自定义用户提供程序

Laravel 5.4 Auth Guardian 驱动程序 [customers] 未定义

php 成功登录/注销并注册Laravel 5.4后自定义重定向