如何使用Laravel 5.6中的关系从ID显示名称?

时间:2018-08-28 11:20:12

标签: php laravel laravel-5

我想在表格中显示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'));

在view_issuer.blade.php

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

但这给了我这个错误 SQLSTATE [42S22]:找不到列:1054“ where子句”中的未知列“ rta_list.id”(SQL:从rta_list中选择*,其中rta_listid在(3,4 ))

如何解决此问题并显示名称而不是ID。

3 个答案:

答案 0 :(得分:0)

您的关系应该是这样

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

它应该可以工作。

答案 1 :(得分:0)

删除参数“ 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');
}

答案 2 :(得分:0)

问题是您在名称为id的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');
}