Thêm dữ liệu vào validated()
em đang có cái request form như vậy!
if (request()->method() === 'POST') {
return [
'name' => 'required|min:3|unique:tbl_role',
'activated' => ''
];
}
$id = request()->route()->roleModel->id;
request()->mergeIfMissing(['activated' => 0]);
return [
'name' => 'required|min:3|unique:tbl_role,name,' . $id,
'activated' => ''
];
và bên controller
public function update(RoleRequest $request, RoleModel $roleModel)
{
dd($request->validated());
if ($roleModel->update($request->validated())) {
return response()->json([
'statusCode' => '200',
'href' => route('role.index')
]);
}
}
Cho em hỏi làm thế nào để chèn thêm data vào validated() bên controller ạ! actived của em là input check có value bằng 1 khi được chọn Em cảm ơn
4 CÂU TRẢ LỜI
Đúng rồi anh , validated nó chỉ chứa những field đã vượt qua rule ấy, giờ có cách nào để add thêm field ở bên function rule ko ạ, để bên controller em chỉ cần gọi đến validated để lấy toàn bộ ạ
@phuocbt698 nếu bạn muốn chỉnh sửa request trước khi bắt đầu chạy rule đó thì bạn có thể tham khảo cái này https://laravel.com/docs/9.x/validation#preparing-input-for-validation
Data khi validate xong nó là 1 mảng, bạn cứ nhét thêm key với value là được mà nhỉ. Mà đã có class RoleRequest rồi thì mình xài $request->all()
cũng được bạn ạ.Ví dụ
$attributes = $request->all();
$attributes[key] = value;
như vậy em làm được! em đang thắc mắc em muốn add nó vào trong $request ở trong hàm rule anh ạ! em có làm thử như code trên của em thì dd thì vẫn có dữ liệu trước khi return ! nhưng bên controller thì em gọi ra thì lại ko có
Bạn thử tham khảo đây stackoverflow xem đúng ý bạn không nhé:
$request->merge([
'key' => 'value',
]);
dạ em cảm ơn