Осветить / База данных / QueryException с сообщением «SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец - PullRequest
0 голосов
/ 29 января 2019

Я строю мульти аутентификационную систему, используя laravel 5.5.У меня есть модели Admin и AdminRole, а также их соответствующие миграции. Между моделями Admin и AdminRole существует отношение один к одному.Все отлично работаетНо когда я попытался получить доступ к admin_role следующим образом:

$ admin-> adminRole-> name;Выдает ошибку примерно так:

Освещение / База данных / QueryException с сообщением «SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец« admin_roles.admin_id »в« где предложение »(SQL: выберите* из admin_roles, где admin_roles. admin_id = 1 и admin_roles. admin_id не является нулевым пределом 1) '.

Я пытался много часов, но не смог понять, в чем проблема.Любая помощь будет оценена.Заранее спасибо.

Admin.php Модель:

<?php

namespace App\Models;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class Admin extends Authenticatable
{
    use Notifiable;

    protected $guard = 'admin';

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password', 'ip_address',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    public function adminRole() {
        return $this->belongsTo('App\Models\AdminRole');
    }
}

admins.php миграции

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateAdminsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('admins', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('admin_role_id')->unsigned()->nullable();
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->ipAddress('ip_address')->nullable();
            $table->string('photo')->default('avatar.png');
            $table->boolean('status')->default(true);
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('admins');
    }
}

AdminRole.php Модель

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class AdminRole extends Model
{
    //
    protected $fillable = ['name'];

    public function admin()
    {
        return $this->hasOne('App\Models\Admin');
    }

}

admin_role.php миграций

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateAdminRolesTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('admin_roles', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('admin_roles');
    }
}

1 Ответ

0 голосов
/ 30 января 2019

Код был на самом деле правильный, я очистил кэш и перезагрузил систему.Это работает сейчас.Спасибо, ребята.

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