ОШИБКА: SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец '0' в 'предложении where' - PullRequest
0 голосов
/ 31 марта 2020

У меня есть Laravel -Page и, так как я хочу добавить «мягкое удаление» с полем active в БД, я получаю эту ошибку:

emails.ERROR: SQLSTATE [42S22]: столбец не найден: 1054 Неизвестный столбец «0» в «предложении где» (SQL: выберите * из categories, где (0 = активно и 1 = равно active) упорядочить по name как c)

->, что вызывает ошибку 500, очевидно

, и у меня нет плана, как это исправить, она выглядит вроде все нормально.

DB-Layout

 Schema::create('categories', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('image')->nullable();
        $table->string('description')->nullable();
        $table->unsignedBigInteger('userID')->nullable();
        $table->string('active', 20)->default('is active');
        $table->timestamps();
    });

Модель:

protected $table = 'categories';

protected $fillable = ['id', 'name', 'image', 'description', 'userID', 'active', 'created_at', 'updated_at'];

Использование (как образец для всего остального):

$categories = DB::table('categories')
            ->where(['active', 'is active'])
            ->orderBy('name', 'asc')
            ->get();

или как то так:

->where(['categoryID', $category->id], ['active', 'is active'])

1 Ответ

0 голосов
/ 31 марта 2020

Этот код вызывает ошибку.

$categories = DB::table('categories')
        ->where(['active', 'is active'])
        ->orderBy('name', 'asc')
        ->get();

Eloquent ожидает, что ваш массив where будет в паре key и value. Поскольку вы не указали его, он использует index в качестве имени столбца.

Вы должны разместить его следующим образом:

$categories = DB::table('categories')
        ->where('active', 'is active') //will also work ->where('active', '=', 'is active')
        ->orderBy('name', 'asc')
        ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...