Когда я строю отношения Eloquent, здесь возникают проблемы, я показываю свой код и использую тинкер, чтобы увидеть отношения, но он не создает - PullRequest
1 голос
/ 21 мая 2019

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

pass.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class pass extends Model
{
    public function salman()
    {
        return $this->belongsTo(salman::class);
    }
}

salman.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class salman extends Model
{
    public function passport()
    {
        return $this->hasOne(pass::class);
    }
}

Подсветка \ База данных \ QueryException (42S22) SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец 'pass.salman_id' в'where clause' (SQL: выберите * из passes, где passes. salman_id = 1 и passes. salman_id не является нулевым пределом 1)

Предыдущие исключения

SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец «pass.salman_id» в «выражении where» (42S22)

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Ошибка возникает из-за того, что Laravel по умолчанию ищет salman_id (для таблицы salman).

Если да, то вы можете указать свой первичный ключ, как показано ниже.

Изменить эту строку:

    return $this->belongsTo(salman::class);

До:

    return $this->belongsTo(salman::class, 'id', 'id');  
0 голосов
/ 21 мая 2019

В вашей таблице базы данных passes у вас должен быть столбец с именем salman_id.

Итак, в вашем файле миграции добавьте:

$table->unsignedInteger("salman_id");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...