首页 > 解决方案 > 验证电子邮件并将其发送到 Lumen 控制器

问题描述

我正在尝试使用流明控制器验证电子邮件。如果电子邮件输入正确,它应该弹出“有效”,但在当前状态下,即使输入了正确的电子邮件,它也总是“无效”。

namespace App\Http\Controllers;

use Illuminate\Http\Request;

 class NewsletterController extends Controller
 {
  public function subscribe(Request $request)
 {
    $email = $request->query('email');
    echo $email;


    function valid_email($email) {

        return !!filter_var($email, FILTER_VALIDATE_EMAIL);


    }

    if( valid_email($email) ) {

        return response()->json(["valid"]);



    } else {

        return response()->json(["invalid"]);

    }

}
}

通过 jQuery 调用 AJAX

 function msg() {
var email = document.getElementById("email").value;
console.log(email);
var email2 = $('input[type=email]').val();
console.log(email2);
event.preventDefault();

$.get("newsletter/subscribe?email + $('input[type=email]').val()", function(data, status){
    console.log("data: " + data + "\nStatus: " + status);
})
.done(function() {
    //console.log( "done" );
    alert("DONE");
})
.fail(function() {
    console.log( "error" );
    alert("Fail");
})
.always(function() {
    //console.log( "finished" );
    alert("hz");
});            

};

形式

 <form class="join-newsletter">
    <input id="email" name="email" type="email" placeholder="Enter your email address" class="email-address">
    <input onclick="msg()" type="submit" value="Subscribe" class="submit-email button">
 </form>

更新的代码:仍然显示数据:无效。

标签: phpcontrollerlumen

解决方案


我想您的ajax请求可以更改为。

$.get("/newsletter/subscribe?email="+ $('#email').val()

可能的问题是您没有email正确地将值发送到您的控制器。


推荐阅读