简体   繁体   English

在laravel 5.4中显示2个表中的数据

[英]Show data from 2 tables in laravel 5.4

I have a simple code, and now I want to select data from 2 tables. 我有一个简单的代码,现在我想从2个表中选择数据。 Then I want to show in my view. 然后,我想展示自己的观点。 Here's my code 这是我的代码

model: Tikpro.php 型号: Tikpro.php

class Tikpro extends Model {
   public $table = "TIKPRO";
   public $primaryKey = "ID_TIKPRO";

   public function permintaan() {
   return $this->hasMany('Permintaan', 'TIKPRO_ID', 'ID_TIKPRO');
}

model: Permintaan.php 型号: Permintaan.php

class Permintaan extends Model {

public $table = "PERMINTAAN";
public $fillable = array(
    'NOMOR_TICKET',
    'TGL_PERMINTAAN',
    'NAMA_REQUESTER',
    'BARANG_PERMINTAAN',
    'NO_FPBJ',
    'TGL_INPUT_FPBJ',
    'TARGET_SELESAI',
    'KETERANGAN',
    'TINDAK_LANJUT_AKHIR',
    'STATUS',
    'FPB',
    'RFQ',
    'DO',
    'BAST',
    'TGL_DEADLINE',
    'titik_proses',
    'TIKPRO_ID',
);
public $primaryKey = "ID_PERMINTAAN";

public function tikpro() {
    return $this->belongsTo('Tikpro','TIKPRO_ID','ID_TIKPRO');
}

Controller: PermintaanController.php 控制器: PermintaanController.php

public function details($ID_PERMINTAAN) {
    $query = DB::table('PERMINTAAN')->select('TIKPRO.NAMA_TIKPRO')->join('TIKPRO','TIKPRO.ID_TIKPRO','=','PERMINTAAN.TIKPRO_ID')->get('all');
    $jebret = Permintaan::find($ID_PERMINTAAN);
    return view('permintaan.details', compact('jebret'))->with($query);
}

And how can I show it? 我该怎么显示呢? In my view I try {{ $jebret->$query }} . 在我看来,我尝试{{$ jebret-> $ query}}。 But still can't show the data. 但是仍然无法显示数据。

How should I write code? 我应该如何编写代码? Thanks 谢谢

I think you can try this 我想你可以试试看

public function details($ID_PERMINTAAN) {
    $query = DB::table('PERMINTAAN')->select('TIKPRO.NAMA_TIKPRO')->join('TIKPRO','TIKPRO.ID_TIKPRO','=','PERMINTAAN.TIKPRO_ID')->where('PERMINTAAN.ID_PERMINTAAN',$ID_PERMINTAAN)->get();

    return view('permintaan.details', compact('query'));
}

Hope this work for you 希望这项工作对您有帮助

There's 2 ways here. 这里有2种方法。 The first and easiest (if you've set it up correctly) is the relationship. 第一个也是最简单的(如果您已正确设置)关系。 https://laravel.com/docs/5.4/eloquent-relationships . https://laravel.com/docs/5.4/eloquent-relationships To use the one in your example you want to do this: 要在您的示例中使用一个,您要执行以下操作:

$permintaans = Permintaan::query()->get()->all();

return view('permintaan.details', [
    'permintaans' => $permintaans,
]);

//In the view 

@foreach($permintaans as $permintaan)
     <tr>{{$permintaan->tikpro->attribute}}</tr>
@endforeach

Another way like you've attempted is the join. 您尝试过的另一种方法是联接。 In the select though I would leave it blank so you get all columns! 在选择中,尽管我将其保留为空白,所以您将获得所有列!

$permintaans = Permintaan::query()
->join('TIKPRO','TIKPRO.ID_TIKPRO','=','PERMINTAAN.TIKPRO_ID')
->get()
->all();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM