Как настроить индивидуальную проверку нескольких атрибутов в обновлении контроллера CRUD Laravel Backpack?
Допустим, у меня есть ZIP, CITY, DELIVERY_PICKUP и DELIVERY_SHIPPING. И скажем, мои требуемые правила:
- нужно выбрать одно из DELIVERY_PICKUP и / или DELIVERY_SHIPPING
- если выбран DELIVERY_SHIPPING ZIP и CITY необходимо заполнить
Можно написать собственные правила проверки с несколькими атрибутами в laravel, например,
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
class Delivery implements Rule
{
public $delivery_shipping;
public $delivery_pick_up;
public $zip;
public $city;
public function __construct($delivery_shipping,$delivery_pick_up,$zip,$city)
{
$this->delivery_shipping = $delivery_shipping;
$this->delivery_pick_up = $delivery_pick_up;
$this->zip = $zip;
$this->city = $city;
}
Но как мне поместить его в Backpacks FormRequest и заполнить его значениями?
namespace App\Http\Requests;
use App\Http\Requests\Request;
use Illuminate\Foundation\Http\FormRequest;
class AdvertRequest extends FormRequest
{
public function rules()
{
return [
'title' => 'required|min:5|max:255',
'frontend_user_id' => 'required',
'profile_type' => 'required',
'advertisement_type' => 'required',
'marketplace_category_id' => 'required',
'price' => 'numeric|nullable',
'price_mode' => 'required',
'content' => 'required',
'zip' => 'required|numeric',
'city' => 'required|min:1|max:255',
'delivery_shipping' => 'Delivery',
];
}