Home > Enterprise >  Create flash message in class request laravel
Create flash message in class request laravel

Time:10-29

i have a problem in my project. How to create a flash session in class request / validation ? I haven't found a way.

This my Request class code

class UserRequest extends FormRequest {

public function authorize()
{
    return TRUE;
}

/**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    $rules = [
        "user_fullname" => "required|alpha_spaces",
        "user_email" => "required|email|unique,list_user,user_email",
        "user_phone" => "nullable|numeric",
        "access_id" => "required|alpha_num_spaces",
        "user_password" => "required|min:6|regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9]).*$/|confirmed",
        "warehouse_id" => "alpha_num_spaces|nullable",
    ];

    if ($this->method() == "POST") {
        $rules["province_id"] = "alpha_num_spaces|nullable";
        $rules["district_id"] = "alpha_num_spaces|nullable";
        $rules["subdistrict_id"] = "alpha_num_spaces|nullable";
        $rules["kode_pos"] = "alpha_num_spaces|nullable";
        $rules["user_address"] = "alpha_num_spaces|nullable";
    }

    return $rules;
}

public function messages()
{
    return [
        "user_password.regex" => "Password wajib terdiri dari huruf & angka!"
    ];
}

}

This my controller

public function process_user_add(UserRequest $user_request)
{
    $user_request->validated();

    $request = \request();
    $input = (object) \request()->all();
    $check = User::add_user_from_owner($input);

    if ($check->success) {
        return \redirect()->to("administrator/user/" . \encrypt_url($check->id))->with("message", "<script>sweet('success', 'Success!', '$check->message')</script>");
    } else {
        return \redirect()->back()->with("message", "<script>sweet(\"error\", \"Failed!\", \"$check->message\")</script>")->withInput($request->all());
    }
}

How to i check if validation failed, i create a flash message? To my knowledge, class request is auto redirect goback url if validation error

CodePudding user response:

This section from the documentation will point you to the right direction

CodePudding user response:

You can use die Validator Facade. Validator::make() After then you can rescieve the fails with the fails() Method. Take a look in the code below:

$rules = array(
    "user_fullname" => "required|alpha_spaces",
    "user_email" => "required|email|unique,list_user,user_email",
    "user_phone" => "nullable|numeric",
    "access_id" => "required|alpha_num_spaces",
    "user_password" => "required|min:6|regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9]).*$/|confirmed",
    "warehouse_id" => "alpha_num_spaces|nullable",
);

$validator = Validator::make($request->all(), $rules);

if ($validator->fails())
{
    return Redirect::to('/your_url')->withInput()->withErrors($validator);
}
  • Related