從另一個與名稱 laravel 相符的表格中取得數據
P粉378264633
P粉378264633 2024-01-29 12:28:44
0
1
345

在開始之前,先進行一些翻譯,因為我的程式碼沒有使用英文:

提供者 = 供應商

#工作=工作

#所以我有兩個表,供應商表和工作表。每個供應商可以擁有多個作品,並且每個作品只能由一個供應商擁有。它應該是一對多的關係。這是我的桌子

供應商表

工作台

所以,我使用 LARAVEL 作為我的框架。我創建了一個帶有操作按鈕的供應商表,我希望它能夠運行,如果單擊該按鈕,它將顯示確切供應商名稱擁有的工作(pekerjaan)清單。正如您從上表中看到的,我將供應商名稱 (nama) 新增至資料庫中的「工作表」。我怎樣才能讓這個功能發揮作用?我對 Laravel 中的「雄辯」很陌生。

這是我的模型檔:

Jobs.php

#
namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model as Eloquent;

class Pekerjaan extends Eloquent
{
    use HasFactory;

    protected $guarded = [];

    public function penyedia(){
        return $this->belongsTo('App\Models\Penyedia');
   }

}

Provider.php

#
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model as Eloquent;

class Penyedia extends Eloquent
{
    use HasFactory;

    protected $guarded = [];

    public $timestamps = false;

    public function pekerjaan(){
       return $this->hasMany('App\Models\Pekerjaan');
   }
}

AdminController.php

public function showpekerjaan(){
        $penyedia = penyedia::all();

        return view('admin.showpekerjaan', compact('penyedia'));
    }

tabelnilai_pekerjaan.blade.php(我想根據供應商顯示此工作表)

<section class="content">
    <div class="container-fluid">
        <div class="row">
            <div class="col-12">
              <div class="card">
                <div class="card-header">
                  <h3 class="card-title">Tabel Nilai Pekerjaan</h3>
                </div>
                <!-- /.card-header -->
                <div class="card-body table-responsive">
                  <table id="tabelpekerjaan" class="table table-bordered">
                    <thead>
                      <tr>
                        <th style="width: 10px">No.</th>
                        <th>Paket Pekerjaan</th>
                        <th>Nama Perusahaan</th>
                        <th>Lokasi Pekerjaan</th>
                        <th>HPS</th>
                        <th>Nilai Kontrak</th>
                        <th style="width: 120px">Aksi</th>
                      </tr>
                    </thead>
                    <tbody>
                      @php $no = 1; @endphp
                      @foreach ($penyedia as $penyedias)
                      <tr>
                        <td>{{$no++}}</td>
                        <td>{{$penyedias->pekerjaan->pekerjaan}}</td>
                        <td>{{$penyedias->pekerjaan->nama}}</td>
                        <td>{{$penyedias->pekerjaan->lokasi}}</td>
                        <td>Rp. {{number_format($pekerjaans->pekerjaan->hps,0,',',',')}}</td>
                        <td>Rp. {{number_format($pekerjaans->pekerjaan->nilai_kontrak,0,',',',')}}</td>
                        <td>
                            <a href="#" type="button" class="btn btn-primary btn-block btn-outline-primary">Edit</a>
                        </td>
                      </tr>
                      @endforeach
                    </tbody>
                  </table>
                </div>
                <!-- /.card-body -->
              </div>
              <!-- /.card -->
  
            
    </div>
</section>

有什麼我需要新增、編輯或更改的嗎?謝謝

P粉378264633
P粉378264633

全部回覆(1)
P粉710478990

您正在嘗試將陣列列印為字串。您的 pekerjaan() 關係具有 hasmany 屬性,並且它會傳回陣列。如果您想顯示所有pekerjaan,則需要在循環內執行第二個循環。如果你只需要顯示一個,你可以簡單地這樣做

{{$penyedias->pekerjaan[0]->pekerjaan}}

要顯示所有職位,您可以在 $provider->jobs 上循環,例如:

@php $no = 1; @endphp
                  @foreach ($penyedia as $penyedias) 
                   @foreach($penyedias->pekerjaan as $pekerjaan)
                  
                    {{$no++}}
                    {{$pekerjaan->pekerjaan}}
                    {{$penyedias->nama}}
                    {{$pekerjaan->lokasi}}
                    Rp. {{number_format($pekerjaan->hps,0,',',',')}}
                    Rp. {{number_format($pekerjaan->nilai_kontrak,0,',',',')}}
                    
                        Edit
                    
                  
                   @endforeach
                  @endforeach

並更改 $provider =provider::all();在您的控制器上 $provider = Provider::all();

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!