Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 19.12.2020 20:49:41

Не получается передать параметры из <select>

Селект организован так:

<label for="user_id" class="block text-sm font-medium text-gray-700">Пользователь</label>
<select id="user_id" name="user_id" autocomplete="country" class="mt-1 block w-full py-2 px-3 border border-gray-300 bg-white rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
   @foreach($users as $user)
      <option value="{{ $user->id }}">{{ $user->name }}</option>
   @endforeach
</select>

обработка в соответствующем классе:

public function store() {
        $this->validate([
            'user_id' => 'required',
            'organization_id' => 'required',
        ]);

        Worker::updateOrCreate(['id' => $this->worker_id], [
            'user_id' => $this->user_id,
            'organization_id' => $this->organization_id,
            'active' => $this->active
        ]);

    }

Но в результате имею постоянно ошибку:

SQL: insert into `workers` (`user_id`, `organization_id`, `active`, `updated_at`, `created_at`) values (0, 0, 1, 2020-12-19 17:46:40, 2020-12-19 17:46:40)

т.е. получается, что не передаются поля из селекта, подставляются 0 и 0
В чем ошибка? И как бы посмотреть, что он там получает при создании нового элемента?

Изменено RizONE (19.12.2020 20:50:34)

Не в сети

#2 19.12.2020 21:20:34

Re: Не получается передать параметры из <select>

Проверил через dd($request->all()) - форма возвращает и `user_id` и `organization_id`, но ошибка сохраняется

Не в сети

#3 19.12.2020 21:41:57

Re: Не получается передать параметры из <select>

Проблема может и в том, что таблица workers организована так:

public function up()
    {
        Schema::create('workers', function (Blueprint $table) {
            $table->id();
            $table->foreignId('user_id')->constrained();
            $table->foreignId('organization_id')->constrained();
            $table->boolean('active');
            $table->timestamps();
        });
    }

т.е. тут 2 внешних ключа
и полная ругань:

QLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`bill`.`workers`, CONSTRAINT `workers_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)) (SQL: insert into `workers` (`user_id`, `organization_id`, `active`, `updated_at`, `created_at`) values (0, 0, 1, 2020-12-19 18:18:43, 2020-12-19 18:18:43))

Не в сети

Подвал раздела