在 Laravel 10 项目中工作,我将使用以下 LoginController 将电话号码插入表中
public function submit(Request $request)
{
$request->validate([
'phone' => 'required|numeric|min:10'
]);
$user = User::firstOrCreate([
'phone' => $request->phone
]);
if(!$user) {
return response()->json(['message' => 'Could not process a user with that Phone number.'], 401);
}
$user->notify(new LoginNeedsVerification());
return response()->json(['message' => 'Text message notification sent.']);
}
我的api路线是
Route::post('/login', [LoginController::class, 'submit']);
并且我正在使用
httpie
命令提示符,当我尝试 httpie 命令时 http POST localhost/api/login phone=772541258
cmd 收到以下错误消息
Content-Length: 315
Content-Type: text/html; charset=us-ascii
Date: Mon, 08 Jan 2024 05:20:08 GMT
Server: Microsoft-HTTPAPI/2.0
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Not Found</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Not Found</h2>
<hr><p>HTTP Error 404. The requested resource is not found.</p>
</BODY></HTML>
但是我的数据表工作正常。这是很好的插入数据。那么我需要在 httpie 命令前打印我的 json 消息
return response()->json(['message' => 'Text message notification sent.']);
?那么问题出在哪里呢?
您遇到的错误,HTTP 404 Not Found,表明您尝试访问的方向不存在或未在您的 Laravel 应用程序中描述。
在您的情况下,您使用的是后续的 HTTPie 命令:
http POST localhost/api/login phone=772541258
确保您从正确的目录运行命令,并且 Laravel 开发服务器已启动并正在运行。另外,请确保您为 API 端点使用正确的 URL。
如果您的 Laravel 开发服务器运行在
localhost
并且您使用的是默认的 Laravel 开发服务器端口 (8000
),则正确的 URL 应该是:
http POST http://localhost:8000/api/login phone=772541258
如果您使用不同的端口,请务必调整 URL。
此外,您可能想通过在 Laravel 项目目录中运行以下命令来检查您的路由是否已正确注册:
php artisan route:list
此命令将显示 Laravel 应用程序中所有已注册路由的列表,您可以检查您的
/api/login
路由是否已列出。
如果问题仍然存在,请检查您的 Laravel 路由并确保在
web.php
或 api.php
文件中定义该路由,具体取决于您的设置。如果您仍然遇到问题,则 Laravel 应用程序配置或服务器设置可能存在问题。