Как передать ID категории в пост - PullRequest
1 голос
/ 31 октября 2019

Мне просто нужно re-structured my database иметь таблицу category вместо использования столбца категории в главной форме. Как я могу передать category_id в мою форму, чтобы моя форма POSTs правильно? Прямо сейчас я получаю эту ошибку, и я полагаю, что это потому, что мой category_id имеет тип integer, и я отправляю строку.

SQLSTATE [22007]: Неверный формат даты и времени: 1366 Неверное целое числозначение

Также я вручную вставил Comp Time Used, OT Accrued, Sick Time и Vacation Time Used в свою таблицу category через PHPMYADMIN. Есть лучший способ сделать это? Как, может быть, внутри моей модели?

У меня есть форма , которая выглядит так:

<div class="form-group">
    <label for="categoryForm">Category:</label>
    <select class="form-control" name="category_id" id="categoryForm" placeholder="Category">
      <option name="category_id">Comp Time Used</option>
      <option name="category_id">OT Accrued</option>
      <option name="category_id">Sick Time</option>
      <option name="category_id">Vacation Time Used</option>
    </select>
</div>

Моя миграция для моей формы выглядит следующим образом:

Schema::create('times', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->unsignedBigInteger('user_id');
    $table->date('start_day');
    $table->unsignedBigInteger('category_id');
    $table->time('start_time');
    $table->time('finish_time');
    $table->time('duration');
    $table->text('notes');
    $table->timestamps();

    $table->foreign('user_id')->references('id')->on('users');
    $table->foreign('category_id')->references('id')->on('categories');

});

Моя миграция для моей таблицы категорий:

public function up() {
    Schema::create('categories', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->timestamps();
        $table->string('type');
    });
}

Ответы [ 2 ]

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

Предположим, вы хотите передать массив из контроллера в вашу форму в виде блэйда в laravel.

Ваш метод Controller должен быть примерно таким:

use App\Category; //import model
public function create()
{
   $categories = Category::all();
   return view('folder.bladefile', compact('categories')); //by this you will be able to access categories in your bladefile.
}

Внутриваш блейд-файл, вы можете сделать что-то вроде этого

<select class="form-control" name="category_id" id="categoryForm" placeholder="Category">
   @foreach($categories as $category)
     <option value="{{$category->id}}">{{$category->name}}</option>
   @endforeach;
</select>
0 голосов
/ 31 октября 2019

Проблема не в category_id, а в start_date, в котором вы передаете целое число вместо даты и времени, поскольку оно говорит об ошибке.

Кроме того, неправильно добавлятьname="category_id" для каждой опции, вы должны добавить ее к выбору.

На вашем <option> вы должны установить значение для каждой опции. Например: <option value="1">Comp Time Used</option>. Таким образом, вы сможете получить правильный category_id с помощью request('category_id').

Дайте мне знать, помогло ли это вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...