Как исправить загрузку Laravel, не работающую с внешним ключом - PullRequest
0 голосов
/ 31 марта 2019

Listing и Sub_Category имеют отношение один ко многим. Листинг принадлежит одной подкатегории, а подкатегория имеет много списков.

У меня есть столбец в таблице списков 'sub_catgory_id', и я также указал внешний ключ в моих отношениях

Listing.php Model
public function sub_category()
{
    return $this->belongsTo('App\Sub_Category', 'sub_category_id', 'id');
}

Попытка получить все списки, связанные с подкатегорией

return $sub_category = \App\Sub_Category::with('listing')->get()

Я получаю эту ошибку => Столбец не найден: 1054 Неизвестный столбец 'lists.sub__category_id' в 'where clause'.

Я знаю, что eloquent проверяет sub__category_id (двойное подчеркивание), но я уже далеко в этом проекте и хотел бы оставить его как sub_category_id (одиночное подчеркивание). Любые идеи о том, как этого можно достичь?

Ответы [ 3 ]

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

Я думаю, вы должны установить как:

1 .Listening.php:

public function sub_category()
{
    return $this->belongsTo('App\Sub_Category', 'id', 'sub_category_id');
}

2.Sub_Category.php:

public function listing()
{
    return $this->belongsTo('App\Listening', 'sub_category_id','id');
}

По документу laravel в наборе Отношения мы устанавливаем сначала foreign_key , затем local_key следующим образом (Пример получения с сайта laravel):

return $this->hasOne('App\Phone', 'foreign_key', 'local_key');
0 голосов
/ 01 апреля 2019

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

1.Sub_Category.php(Model)

public function listimg() {
    return $this->belongsTo('App\Listening');
}

2.Contoller
$sub_category = \App\Sub_Category::with('listing')->get();
0 голосов
/ 31 марта 2019

Я наконец-то понял, что исправить.Вы можете CamelCase вашей модели.Поэтому в моем случае я переименовал свою модель из Sub_Category в SubCategory, поэтому красноречиво проверяет sub_category_id.

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