草庐IT

php - Laravel 5.2 中同一页面上的 Laravel 登录和注册表单

coder 2024-04-25 原文

从 Laravel 5.2 自带的默认 auth 和 register 系统, 只是制作了一个简单的 View ,可以是欢迎页面,并包括登录和注册表格。 目前,如果按下任何按钮,验证会检查并发现两种形式的错误,并突出显示所有需要的错误。 那么将它们包括在内的最佳解决方案是什么,并且可能对每个单独验证?

我试图将默认登录系统更改为与注册表单输入名称不同,但我认为存在一个链,因为要进行验证并将输入值添加到数据库中。

<div class="form-group{{ $errors->has('login_email') ? ' has-error' : '' }}">
    <label class="col-md-4 control-label">E-Mail Address</label>
    <div class="col-md-6">
         <input type="email" class="form-control" name="login_email" value="{{ old('login_email') }}">
         @if ($errors->has('login_email'))
              <span class="help-block">
                   <strong>{{ $errors->first('login_email') }}</strong>
              </span>
         @endif
     </div>
</div>

<div class="form-group{{ $errors->has('login_password') ? ' has-error' : '' }}">
     <label class="col-md-4 control-label">Password</label>
          <div class="col-md-6">
                <input type="password" class="form-control" name="login_password">
                @if ($errors->has('login_password'))
                     <span class="help-block">
                          <strong>{{ $errors->first('login_password') }}</strong>
                     </span>
               @endif
          </div>
      </div>

可以看出,只是将电子邮件和密码输入名称从“email”更改为“login_email”,从“password”更改为“login_password”

欢迎任何快速有效的解决方案/想法

最佳答案

无需更改输入名称,只需覆盖特征函数并从覆盖的函数中调用它...

完成此操作后,我们可以存储一个 session 值,告诉我们身份验证尝试来自登录或注册表单的来源!

    use AuthenticatesUsers, RegistersUsers {
    AuthenticatesUsers::redirectPath insteadof RegistersUsers;
    AuthenticatesUsers::getGuard insteadof RegistersUsers;
    login as traitLogin;
    register as traitRegister;
}

// Override trait function and call it from the overriden function
public function login(Request $request)
{
    //Set session as 'login'
    Session::put('last_auth_attempt', 'login');
    //The trait is not a class. You can't access its members directly.
    return $this->traitLogin($request);
}


public function register(Request $request)
{
    //Set session as 'register'
    Session::put('last_auth_attempt', 'register');
    //The trait is not a class. You can't access its members directly.
    return $this->traitRegister($request);
}

并在您的 View.blade 文件中检查您的 session 值错误...

<div class="form-group{{ $errors->has('email') && Session::get('last_auth_attempt') == 'login' ? ' has-error' : '' }}">
    <label class="col-md-4 control-label">E-Mail</label>

    <div class="col-md-6">
        <input type="email" class="form-control" name="email" value="{{ old('email') }}">

        @if ($errors->has('email') && Session::get('last_auth_attempt') == 'login')
            <span class="help-block">
                <strong>{{ $errors->first('email') }}</strong>
            </span>
        @endif
    </div>
</div>

用这个你可以检查按下的按钮是否来自登录或注册按钮

关于php - Laravel 5.2 中同一页面上的 Laravel 登录和注册表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35097071/

有关php - Laravel 5.2 中同一页面上的 Laravel 登录和注册表单的更多相关文章

  1. ruby-on-rails - Rails 中同一个类的多个关联的最佳实践? - 2

    我认为我的问题最好用一个例子来描述。假设我有一个名为“Thing”的简单模型,它有一些简单数据类型的属性。像...Thing-foo:string-goo:string-bar:int这并不难。数据库表将包含具有这三个属性的三列,我可以使用@thing.foo或@thing.bar之类的东西访问它们。但我要解决的问题是当“foo”或“goo”不再包含在简单数据类型中时会发生什么?假设foo和goo代表相同类型的对象。也就是说,它们都是“Whazit”的实例,只是数据不同。所以现在事情可能看起来像这样......Thing-bar:int但是现在有一个新的模型叫做“Whazit”,看起来

  2. ruby - 在 ASP 页面上 Mechanize 中断 - 2

    require'mechanize'agent=Mechanize.newlogin=agent.get('http://www.schoolnet.ch/DE/HomeDE.htm')agent.clicklogin.link_withtext:/Login/然后我得到Mechanize::UnsupportedSchemeError。 最佳答案 Mechanize不支持javascript但您可以将搜索字段添加到表单并为其分配搜索词并使用mechanize提交表单form=page.forms.firstform.add_fie

  3. ruby - 每个页面上的 Jekyll 分页 - 2

    据我们所知,Jekyll默认分页仅支持index.html,我想创建blog.html并在那里包含分页。有什么解决办法吗? 最佳答案 如果您创建一个名为/blog的目录并在其中放置一个index.html文件,那么您可以向_config.yml表示paginate_path:"blog/page:num"。不是使用根文件夹中的默认index.html作为分页器模板,而是使用/blog/index.html。分页器将根据需要生成类似/blog/page2/和/blog/page3/的页面。这将使您到达yourwebsite.com/b

  4. ruby-on-rails - 这个 C 和 PHP 程序员如何学习 Ruby 和 Rails? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它

  5. ruby-on-rails - 仅在某些页面上使用 rails_xss - 2

    我正在使用rails_xss运行Rails2.3.14插入。我有另一个用于创建管理仪表板View的插件。我的问题是rails_xss正在转义我的仪表板插件生成的所有HTML。有没有一种方法可以将rails_xss配置为不转义匹配example.com/admin或基于目录(app/views/admin)或任何类似的页面结果一样吗? 最佳答案 更新仪表板生成插件以使用raw或html_safe进行内容输出可能会更简单。 关于ruby-on-rails-仅在某些页面上使用rails_xss

  6. ruby-on-rails - 在多个页面上使用相同表单的 Rails 最佳实践 - 2

    我正在开发一个Rails2.3.1网站。在整个网站中,我需要一个用于在各种页面(主页、创建帖子页面、帖子列表页面、评论列表页面等)上创建帖子的表单——只要说这个表单需要在由各种Controller)。这些页面中的每一个都显示在相应的Controller/操作中检索到的各种其他信息。例如,主页列出了最新的10篇文章、从数据库中提取的内容等。因此,我已将帖子创建表单移动到它自己的部分中,并将该部分包含在所有必要的页面中。请注意,部分POST中的表单到/questions(路由到PostsController::create——这是默认的Rails行为)。我遇到的问题是当Posts表单没有正

  7. ruby-on-rails - 在所有页面上使用 Prawn 的背景图像 - 2

    我在View中有这段代码prawn_document(:page_size=>"A4",:top_margin=>80,:bottom_margin=>40,:background=>"public/uploads/1.png")do|pdf|creation_date=Time.now.strftime('%d-%m-%Y')posts=@posts.eachdo|post|pdf.pad(10)dopdf.textpost.titlepdf.textpost.textendendpdf.page_count.timesdo|i|pdf.go_to_page(i+1)pdf.draw

  8. ruby - Jekyll:如何在 GitHub 页面上使用自定义插件? - 2

    事实证明,由于securityconcerns,自定义ruby​​插件在GitHub页面上不起作用。.我正在尝试将插件(thisone)添加到我的Jekyll项目的_plugins文件夹中,但是当我将它部署到GitHub时,它会被忽略。问题:有没有办法解决这个问题?有没有人找到解决办法?注意:显然我可以在本地生成html文件并将它们提交到我的存储库。但这不是我想要的。 最佳答案 如果你想让Jekyll站点像在本地一样运行,比如让自定义插件正常工作,这里有一种非常方便的方式来构建和部署Jekyll站点到GithubPages。?AGi

  9. ruby-on-rails - 使用 Rails 在同一页面上显示多个表单 - 2

    所以我正在为高中生构建一个Rails应用程序,但在创建用户时遇到了问题。我希望学生只有在选择学校并正确输入学校密码后才能创建帐户。这样做的正确/最简单的方法是什么?我是否应该为他们必须首先通过的user#new操作创建一个看门人,或者他们是否应该以一种方式让学生在同一页面上提交表单。一种是常规用户名、电子邮件、密码,使用:form_for@userdo...end然后为高中/高中密码选择创建另一种形式。理想情况下,Controller将能够获取高中表单的参数,验证这些参数,然后继续从用户参数创建用户。这可以使用Rails吗?我的设置:Rails3和Ruby1.9.2dev谢谢!

  10. ruby-on-rails - 你能检查 ruby​​ on rails 中同一行的多个值是否相同吗? - 2

    基本上,我正在尝试检查我的6个值是否相同。我试着把它们串起来:ifval1==val2==val3==val4==val5==val6#...end但这会出错。这可能使用另一种方法吗?谢谢 最佳答案 试试这个:if[val1,val2,val3,val4,val5,val6].uniq.count==1#...end如果你喜欢花哨的,你可以试试这个unless[val2,val3,val4,val5,val6].find{|x|x!=val1}#...end一旦找到不等于val1的元素,上面的代码就会停止,否则,将执行该block。

随机推荐