محمدرضا فلکی
1 سال پیش توسط محمدرضا فلکی مطرح شد
2 پاسخ

با چه متغیر و متدی ارور رو از form request بگیرم

سلام
چجوری متن ارور رو از form request بگیرم و از controller پاس بدم front
form request

<?php

namespace App\Http\Requests\Admin;

use Illuminate\Foundation\Http\FormRequest;

class CreateAdminRequest extends FormRequest
{
/**
 * 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 [
        'first_name' => 'required|min:3|regex:/^[a-zA-ZÑñ\s]+$/',
        'email' => 'required|email|unique:admins',
        'password' => 'required|min:8',
    ];
}

public function messages()
{
    return [
        'first_name.required' => 'لطفا نام را وارد کنید',
        'first_name.min' => 'نام حداقل باید ۳ کاراکتر باشد',
        'first_name.regex' => 'لطفا حروف را به انگلیسی تایپ کنید',
        'email.required' => 'لطفا ایمیل را وارد کنید',
        'email.email' => 'فرمت ایمیل باید اینگونه باشد : example@gmail.com',
        'email.unique' => 'ایمیل تکراری است',
        'password.required' => 'فیلد رمز را وارد کنید',
        'password.min' => 'رمز حداقل باید ۸ کاراکتر باشد',
    ];
}

controller

<?php

namespace App\Http\Controllers;

use App\Http\Requests\Admin\CreateAdminRequest;
use App\Services\AdminService;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;

class AdminController extends Controller
{
    public function create(CreateAdminRequest $req)
    {
        if ($->fails()) {
            return response()->json([
                "status" => false,
                "errors" => $->errors()->all(),
            ]);
        } else {
            $create = AdminService::create($req->first_name, $req->email, $req->password);
            return response()->json([
                "status" => $create["status"],
                "message" => $create["message"],
            ]);
        }
    }
}

ثبت پرسش جدید
حسین افتخارراد
تخصص : نال کد
@hosseinradvictor 1 سال پیش مطرح شد
0

نیاز نیست شما ریسپانس بدید

use Illuminate\Http\Request;

public function store(Request $request)
{
    $validated = $request->validate([
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ]);

    // The blog post is valid...
}

به این شکل چرا استفاده نمیکنید

توی فرانت هم بدین صورت فراخوانی کنید

@error('title')
    <div class="alert alert-danger">{{ $message }}</div>
@enderror

محمدرضا فلکی
تخصص : Learning Laravel
@m.reza6920 1 سال پیش مطرح شد
0

ممنونم @hosseinradvictor جان
ریسپانس بخاطر اینه که پروژه بصورت api هست و front و back از هم جدان
و این روشی که گفتید رو قبلا استفاده کردم
و برای سازماندهی و مدیریت بهتر رو آوردم به form request


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام