Как изменить атрибут поля при выборе AJAX - PullRequest
0 голосов
/ 21 октября 2019

У меня есть поле в моем crud

        $this->crud->addField([
            'name'      => 'transaction_type',
            'label'     => 'Transaction Type',
            'type'      => 'select2',
            'entity'    => 'transactionType',
            'attribute' => 'name',
            'model'     => 'App\Models\TransactionType',
            'attributes' => [
                'required' => true,
            ],
        ]);

        $this->crud->addField([
            'name'      => 'developer_id',
            'label'     => 'Developer',
            'type'      => 'select2',
            'entity'    => 'developer',
            'attribute' => 'name',
            'model'     => 'App\Models\Developer',
        ]);

Я хочу сделать атрибут, требуемый для developer_id, равным true, поскольку по умолчанию оно равно false. Я знаю, как сделать это ложным, используя этот код ниже

$this->crud->modifyField('developer_id',['attributes' => [
      'required' => true,
]]);

Теперь вопрос в том, как мне сделать developer_id до 'required' => true при выборе опции в transaction_type? То, что у меня есть, это поместить 'data_source' => url("admin/api/devrequirement")' в поле дополнения транзакции тип. таким образом, это выглядело бы так

$this->crud->addField([
            'name'      => 'transaction_type',
            'label'     => 'Transaction Type',
            'type'      => 'select2',
            'entity'    => 'transactionType',
            'attribute' => 'name',
            'data_source' => url("admin/api/devrequirement"), //i added it here
            'model'     => 'App\Models\TransactionType',
            'attributes' => [
                'required' => true,
            ],
        ]);

, а затем помещал маршрут в мои пользовательские маршруты: Route::get('/api/devrequirement', 'SaleCrudController@setDevRequirement'); и внутри этой функции было бы:

public function setDevRequirement(Request $request)
    {
        $form = collect($request->input('form'))->pluck('value', 'name');
        $transaction_type = $form['transaction_type'];
        if($transaction_type == 3) //if transaction type is equal to a specific value then required attribute of developer_id should be true
        {
            $this->crud->modifyField('developer_id',['attributes' => [
                'required' => true,
            ]]);
        }
    }

Но он ничего не делает. он не ставил красную звездочку на поле моего разработчика и не запрашивал проверки. У меня проблемы с рюкзаком Laravel и с тем, как манипулировать им с помощью AJAX.

1 Ответ

0 голосов
/ 24 октября 2019

не берите в голову, я просто создаю произвольное поле и помещаю туда некоторые манипуляции с js

...