【发布时间】:2021-06-17 13:42:31
【问题描述】:
当我访问端点这个 http://localhost/newsapp_api/public/api/register 时,会显示此消息 “此路线不支持 GET 方法。支持的方法:POST”。 look to the link below
但是当我尝试注册新用户并通过邮递员程序为用户输入数据(姓名、电子邮件、密码)时 此消息显示为“消息”:“未定义属性:Illuminate\Database\Query\Builder::$map”。 它不提供 json 数据。 look to the link below
api.php
Route::POST('register', 'App\Http\Controllers\Api\UserController@store');
UserController.php
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'email' => 'required',
'password' => 'required'
]);
$user = new User();
// $user->name = $request->get( 'name' );
// $user->email = $request->get( 'email' );
// $user->password = Hash::make( $request->get( 'password' ) );
$user->name = $request->name;
$user->email = $request->email;
$user->password = Hash::make( $request->password );
$user->save();
return new UserResource( $user );
}
UserResource.php
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection;
use Illuminate\Http\Resources\Json\Resource;
class UserResource extends ResourceCollection
{
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return parent::toArray($request);
}
}
【问题讨论】:
-
尝试使用表单数据。
-
你说的是哪个表单数据?
-
对不起,尝试使用Params代替body提交数据到终点
-
请写下代码会变成什么样子
-
如果您使用邮递员扩展程序,请将其扔掉并使用邮递员主应用程序。