当前位置: 首页 > 知识库问答 >
问题:

Laravel 5.2注册页面上的多个表单

齐典
2023-03-14

我正在与Laravel 5.2合作一个项目。*我使用默认的auth控制器和视图。我的最终目标是在一页上有两张表格用于注册。当用户注册时,他们可以注册为提供商或普通用户。我在“用户”数据库中创建了一个名为“提供者”的新列。

我还使用LaravelCollative超文本标记语言/窗体来生成窗体。

我在视图中创建了两个窗体:

<div class="row">
        <div class="col-md-6">
            <h2>Family Form</h2>
            {!! Form::open() !!}

            {{ Form::label('name', "Name:") }}
            {{ Form::text('name', null, ['class' => 'form-control']) }}

            {{ Form::hidden('provider', false) }}

            {{ Form::label('email', "Email:") }}
            {{ Form::text('email', null, ['class' => 'form-control']) }}

            {{ Form::label('password', "Password:") }}
            {{ Form::password('password', ['class' => 'form-control']) }}

            {{ Form::label('password_confirmation', "Confirm Password:") }}
            {{ Form::password('password_confirmation', ['class' => 'form-control']) }}

            {{ Form::submit('Register', ['class' => 'btn btn-primary btn-block form-spacing-top']) }}

            {!! Form::close() !!}
        </div>

        <div class="col-md-6">
            <h2>Provider Form</h2>
            {!! Form::open() !!}

            {{ Form::label('name', "Name:") }}
            {{ Form::text('name', null, ['class' => 'form-control']) }}

            {{ Form::hidden('provider', true) }}

            {{ Form::label('email', "Email:") }}
            {{ Form::text('email', null, ['class' => 'form-control']) }}

            {{ Form::label('password', "Password:") }}
            {{ Form::password('password', ['class' => 'form-control']) }}

            {{ Form::label('password_confirmation', "Confirm Password:") }}
            {{ Form::password('password_confirmation', ['class' => 'form-control']) }}

            {{ Form::submit('Register', ['class' => 'btn btn-primary btn-block form-spacing-top']) }}

            {!! Form::close() !!}
        </div>
    </div>

然后在Auth\AuthController中,我编辑了“create”函数以添加“provider”布尔值:

protected function create(array $data)
{
    return User::create([
        'name'     => $data['name'],
        'provider' => $data['provider'],
        'email'    => $data['email'],
        'password' => bcrypt($data['password']),
    ]);

}

现在我的问题是,无论我填写什么表格,它总是在数据库中的“提供者”下保存为FALSE或“0”

以下是表单的HTML输出:

<div class="row">
        <div class="col-md-6">
            <h2>Family Form</h2>
            <form method="POST" action="//localhost:3000/auth/register" accept-charset="UTF-8"><input name="_token" type="hidden" value="Rli5AmRKkov64hPt6AEfr7yOLwA5EwUmozVePgQL">

            <label for="name">Name:</label>
            <input class="form-control" name="name" type="text" id="name">

            <input name="provider" type="hidden" value="">

            <label for="email">Email:</label>
            <input class="form-control" name="email" type="text" id="email">

            <label for="password">Password:</label>
            <input class="form-control" name="password" type="password" value="" id="password">

            <label for="password_confirmation">Confirm Password:</label>
            <input class="form-control" name="password_confirmation" type="password" value="" id="password_confirmation">

            <input class="btn btn-primary btn-block form-spacing-top" type="submit" value="Register">

            </form>
        </div>

        <div class="col-md-6">
            <h2>Provider Form</h2>
            <form method="POST" action="//localhost:3000/auth/register" accept-charset="UTF-8"><input name="_token" type="hidden" value="Rli5AmRKkov64hPt6AEfr7yOLwA5EwUmozVePgQL">

            <label for="name">Name:</label>
            <input class="form-control" name="name" type="text" id="name">

            <input name="provider" type="hidden" value="1">

            <label for="email">Email:</label>
            <input class="form-control" name="email" type="text" id="email">

            <label for="password">Password:</label>
            <input class="form-control" name="password" type="password" value="" id="password">

            <label for="password_confirmation">Confirm Password:</label>
            <input class="form-control" name="password_confirmation" type="password" value="" id="password_confirmation">

            <input class="btn btn-primary btn-block form-spacing-top" type="submit" value="Register">

            </form>
        </div>
    </div>

如果没有办法在同一个注册页面上支持两个表单,有没有办法创建两个独立的注册页面,一个用于“家庭”,一个用于“提供商”,同时仍然使用默认的AUTH系统?我之前尝试过,但是每当有验证问题时,它总是会重定向到 /auth/register

谢谢你的帮助:)

共有1个答案

汪永春
2023-03-14

显然,我忘了在用户模型中将“provider”添加到$filleble。。

我已经解决了我自己的问题,但是如果有更好的方法,我愿意学习!

应用程序\用户。php:

protected $fillable = [ 'name', 'provider', 'email', 'password' ];
 类似资料:
  • 页面 Page Page(Object) Page(Object) 函数用来注册一个页面。接受一个 Object 类型参数,其指定页面的初始数据、生命周期回调、事件处理函数等。 Object 参数说明: 属性 类型 描述 data Object 页面的初始数据 onLoad Function 生命周期回调—页面加载时触发 onShow Function 生命周期回调—监听页面显示, onReady

  • 我用的是Primefaces 5.2。 到目前为止,排序工作还不错,但如果我对其中一个表(我们称之为表a)进行排序,然后刷新页面(例如,通过激发h:commandButton),则会出现奇怪的行为,最后会出现NullPointerException。在这种情况下,所有表都有与表a相同的列高亮显示。此外,当我随后对表a以外的表进行排序时,就会出现以下异常:

  • 问题内容: 我有一个网站,有一个用户系统。我想将wordpress的用户系统集成到该网站的系统中,但是我仍然想使用该网站的注册/登录页面。我不希望任何人都能使用Wordpress的登录或注册表格进行登录或注册。相反,当他们尝试访问Wordpress中的登录/注册页面时,我希望这些页面将它们重定向到我自己的登录/注册页面。 有什么办法吗?我已经尝试过Google,但是我所能找到的只是在用户登录或注册

  • 问题内容: 我一直在将RMI用于当前正在处理的项目,并且希望将多个主机绑定到单个RMI注册表。 但是,当我尝试这样做时,我收到一条错误消息: java.rmi.AccessException:不允许Registry.Registry.bind;origin / 192.168.0.9是非本地主机 我这样做是在谷歌上进行的,似乎RMI默认情况下会阻止远程主机进行绑定,我想知道是否有某种方法可以覆盖或

  • 源代码 ENS注册表是ENS系统中的核心合约,所有的ENS查询都从注册表开始。注册表负责管理域名列表,记录每个域名的所有者、解析器和TTL,并允许域名的所有者对这些数据进行更改。 ENS注册表的详细信息请参阅EIP137。 获取所有者 function owner(bytes32 node) external view returns (address); 1 以上函数返回node所标识域名的所有

  • 我从AWS控制台创建了一个EC2实例,通过安全组选项打开HTTP端口(例如8080) 我创建了一个新的负载均衡器,使用HTTPS将其连接到实例的HTTP端口。 我使用此配置创建了文件(我使用verdaccio作为npm私有注册表,使用registry:2作为docker注册表: 现在,注册表运行良好。因此,如果访问,我就可以看到它,并且可以通过将npm包推送到它 然而,关于docker注册表,虽然