laravel - 发送请求时接收空数组作为输出
问题描述
我在我的 laravel 项目中创建了 2 个名为UserStoreRequest
and的类。是一个 FormRequest 来验证来自用户的请求。发送参数后,我只想在方法内访问这些参数,但我得到一个空数组作为响应,而不是发送的参数。UserAuthController
UserStoreRequest
Register
UserAuthController
:
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Http\Requests\UserStoreRequest;
use App\Models\User;
class UserAuthController extends Controller
{
public function register(UserStoreRequest $request)
{
dd($request->all());
/* $data = $request->validate([
'name' => 'required|max:255',
'email' => 'required|email|unique:users',
'password' => 'required|confirmed'
]);
$data['password'] = bcrypt($request->password);
$user = User::create($data);
$token = $user->createToken('API Token')->accessToken;
return response(['user' => $user, 'token' => $token]);*/
}
}
UserStoreRequest
:
namespace App\Http\Requests;
use Illuminate\Http\Request;
class UserStoreRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
];
}
}
下面我把API类中使用的路由发送参数:
Route::post('/register', 'App\Http\Controllers\Auth\UserAuthController@register');
解决方案
看起来您正在尝试使用Form Request。为此,请确保您扩展了正确的父类。
// Incorrect
use Illuminate\Http\Request;
class UserStoreRequest extends Request { /* ... */ }
// Correct
use Illuminate\Foundation\Http\FormRequest;
class UserStoreRequest extends FormRequest { /* ... */ }
Laravel 依赖注入容器能够实例化您现有请求的新实例,这就是为什么您不会收到任何错误并且控制器可以使用您的请求实例的原因。但是,Laravel 不知道用实际的请求数据填充它。这就是FormRequest
进来的地方。
推荐阅读
- typescript - 用其 NonNullable 版本覆盖属性
- git - “git show-branch”中的感叹号是什么意思?
- reactjs - 反应:在“onChange”上执行一次 setTimeout
- ajax - ElasticSearch 不能使用相同的来源
- python - 将 Pandas 列中出现的频率映射到字典
- flutter - 无法解析 URL“https://pub.dartlang.org”。错误(69):无法“发布升级”颤振工具。5 秒后重试……(还剩 10 次尝试)
- zlib - CRC 结合未知 CRC
- angular - 使用 Storybook 和 Cypress 测试角度组件 @Output
- highcharts - HighCharts/HighStock 午夜 x 轴上的垂直线
- html - 如何使具有背景图像的div可点击到引导程序中的另一个页面