Как показать имя из идентификатора, используя отношения в laravel 5.6? - PullRequest
0 голосов
/ 28 августа 2018

Я хочу показать имя rta в таблице, но выдает ошибку

Функция модели эмитента

public function rtalist(){
    return $this->belongsTo('App\RTAList','rta_id','id');
}

Модель RTAList

protected $table = 'rta_list';
protected $fillable = ['rta_name','dp_type','rta_address','rta_phone','rta_email','dp_status','setup_date'];

Код в контроллере эмитента

 $data = Issuer::with('rtalist')->get();
    return view('admin.issuer.view_all_issuer')->with(compact('data'));

In view_issuer.blade.php

  <td style="text-transform: uppercase;">{{ $issuers->rta_list->rta_name }}</td>

Но это дает мне эту ошибку SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец 'rta_list.id' в 'предложении where' (SQL: выберите * из rta_list, где rta_list. id in (3, 4))

Как решить эту проблему и показать имя вместо id ..

Ответы [ 3 ]

0 голосов
/ 28 августа 2018

Удалите параметр "id" и в качестве следующего параметра добавьте "your_compost_table_name":

public function rtalist(){
  return $this->belongsTo('App\RTAList', 'your_compost_table_name', 'rta_id');
}

или попробуйте:

public function rtalist(){
  return $this->belongsTo('App\RTAList', 'rta_id');
}
0 голосов
/ 28 августа 2018

Проблема в том, что у вас не было первичного ключа в таблице rta_list с идентификатором имени. Вы должны иметь структуру, как показано ниже

Таблица эмитентов

id --primary_id
rta_list_id --foreign_key
.
.
....

Таблица RTAList

p_id --primary_id
rta_name
.
.
....

Теперь создайте отношения, как показано ниже

public function rtalist(){
    return $this->belongsTo('App\RTAList', 'rta_list_id', 'p_id');
}
0 голосов
/ 28 августа 2018

Ваше отношение должно быть таким

public function rtalist(){
    return $this->belongsTo('App\RTAList','rta_list_table_primary_key','Issuer Model table foreign key');
}

И это должно работать.

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