Я получаю это сообщение об ошибке с отношениями, но я не могу выяснить, что мне нужно сделать, чтобы остановить эту ошибку.OcotberCMS - «SQLSTATE [42S22]: столбец не найден: 1054 Неизвестный столбец« users.application_id »
у меня есть модель приложения с контроллером и компонентом. в интерфейсе можно добавить новую запись приложений. Но для просмотра я получаю сообщение об ошибке.
"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'users.application_id' in 'where clause' (SQL: select * from `users` where `users`.`deleted_at` is null and `users`.`application_id` = 1 and `users`.`application_id` is not null limit 1)" on line 662 of /srv/users/sssandwich/apps/website/public/vendor/laravel/framework/src/Illuminate/Database/Connection.php
Я изолировал ошибку появляться, когда я добавить этот код в полях.ямл Acme \ Models \ Application \ fields.yaml.
# ===================================
# Form Field Definitions
# ===================================
fields:
client:
label: Client
type: relation
disabled: true
select: concat(name, ' ', surname)
span: left
В
Acme\Models\Application.php
У меня есть отношения, установленные в качестве
/**
* @var array Relations
*/
public $hasOne = [
'client' => ['RainLab\User\Models\User', 'table' => 'users'],
'cv' => ['Acme\Acme\Models\Cv']
];
public $hasMany = [];
public $belongsTo = [
'owner' => ['Backend\Models\User']
];
Ниже представлена структура базы данных ...
public function up()
{
Schema::create('acme_acme_applications', function(Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->string('jobs_id')->nullable()->index();
$table->string('application_id')->nullable()->index();
$table->string('owner_id')->nullable()->index();
$table->string('user_id')->nullable()->index();
$table->string('vacancy_id')->nullable()->index();
$table->string('ref_no', 50)->nullable();
$table->char('status_update')->nullable();
$table->timestamps();
});
}
Я grep'd 'APPLICATION_ID' и он появляется только в структуре db. Таблица пользователей - плагин Rainlab User, но я не уверен, почему он пытается найти application_id в этой таблице.
Удалите отношения клиента hasOne в вашем приложении, похоже, что он пытается слишком много развернуть. Или вместо этого вместо этого добавьте ключи. – aynber
Thankyou, но если я удалю клиент hasOne, то он не отобразит имя пользователя, отправившего приложение. Но я не знаю, почему он ищет application_id. – ServerSideSkittles
Возможно, это попытка вытащить клиента приложения. Попробуйте добавить ключи к клиенту (id как внешний ключ, user_id - как локальный ключ). Я не знаю формат, поэтому я не уверен, как вы его добавили. – aynber