【发布时间】:2018-01-06 09:05:05
【问题描述】:
我的应用中有一个用于登录的 html 表单。我不知道为什么我无法在我的控制器中获取我的请求中的表单内容。这是我的表格:
<div class="loginContainer">
<form class="signin" method="post" action="/login">
<input type="email" id="inputEmail" placeholder="Email" required="" autofocus="">
<input type="password" id="inputPassword" placeholder="Password" required="">
<button type="submit">Sign in</button>
</form>
</div>
页面/login 重定向到显示这一行:
{"email":["邮箱为必填项。"],"password":["密码 必填字段。"]}
这是我的UsersController.php:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use Illuminate\Http\Request;
use App\Users;
use Log;
class UsersController extends Controller
{
public function __construct()
{
// $this->middleware('auth', ['only' => ['authenticate']]);
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function authenticate(Request $request)
{
Log::info("hiiidsfoiasjdfisa");
Log::info($request->input('email'));
Log::info($request->input('password'));
Log::info(implode("|", $request->all()));
$this->validate($request, [
'email' => 'required',
'password' => 'required'
]);
$user = Users::where('email', $request->input('email'))->first();
Log::info($user->password);
Log::info($user->email);
if(Hash::check($request->input('password'), $user->password)){
$apikey = base64_encode(str_random(40));
Users::where('email', $request->input('email'))->update(['api_key' => "$apikey"]);;
return response()->json(['status' => 'success','api_key' => $apikey]);
}
else
{
return response()->json(['status' => 'fail'],401);
}
}
}
?>
我尝试记录我的 $request 变量的内容,但它们在日志文件中都返回空。
请帮忙!
【问题讨论】:
-
您不会在表单中使用名称属性进行输入。
-
@VincentDecaux 我才意识到这一点。我的表格现在正在工作。将其发布为答案,我会接受。