无法从联接表中检索数据

时间:2019-06-16 11:16:04

标签: php laravel laravel-5 eloquent

我有一些表调用大师和siswa,它们被加入show方法中,但是当show.blade上显示错误时

这是我的表演方法

 public function show($id)
{
    $data = DB::table('siswas')
        ->join('gurus','gurus.id','=','siswas.kelas')
        ->select(
            'siswas.id',
            'siswas.nama',
            'gurus.guruKelas',
            'siswas.status',
            'siswas.fotoSiswa',
            'siswas.alamat',
            'siswas.noTelp',
            'siswas.tempatLahir',
            'siswas.tanggalLahir',
            'siswas.namaBapak',
            'siswas.namaIbu')
        ->where("siswas.id",$id)
        ->get();

    return view ('siswa.show')->with('siswa',$data);
}

这是我的表演。刀片

<div class="row">
    <div class="col-md-4 col-sm-4">
        <img class="img-circle" style="width: 100%" src="/storage/fotoSiswa/{{$siswa->fotoSiswa}}">
    </div>

    <div class="col-sm">
        <h3>Nama : {{$siswa->nama}}</h3>
        <p>Kelas : {{$siswa->kelas}}</p>
        <p>alamat : {{$siswa->alamat}}</p>
        <p>Nomor Telfon : {{$siswa->noTelp}}</p>
        <p>Tempat Tanggal Lahir : {{$siswa->tempatLahir}} , {{$siswa->tanggalLahir}}</p>
        <p>Nama Orang Tua</p>
        <p>Bapak : {{$siswa->namaBapak}}</p>
        <p>Ibu : {{$siswa->namaIbu}}</p>
    </div>

这个错误是我在谈论error report

2 个答案:

答案 0 :(得分:0)

您正在使用get,所以请尝试

@foreach($siswa as $data)
  <div class="col-md-4 col-sm-4">
    <img class="img-circle" style="width: 100%" src="/storage/fotoSiswa/{{$data->fotoSiswa}}">
</div>

 <div class="col-sm">

    <h3>Nama : {{$data->nama}}</h3>
    <p>Kelas : {{$data->kelas}}</p>
    <p>alamat : {{$data->alamat}}</p>
    <p>Nomor Telfon : {{$data->noTelp}}</p>
    <p>Tempat Tanggal Lahir : {{$data->tempatLahir}} , {{$data->tanggalLahir}}</p>
    <p>Nama Orang Tua</p>
    <p>Bapak : {{$data->namaBapak}}</p>
    <p>Ibu : {{$data->namaIbu}}</p>

</div>
@endforeach

答案 1 :(得分:0)

感谢您为我提供帮助的任何人,但最终我弄清了问题所在。因为在我的index()上应该使用first()而不是像这样的get()

public function show($id)
    {
        $data = DB::table('siswas')
        ->join('gurus','gurus.id','=','siswas.kelas')
        ->select('siswas.id','siswas.nama','gurus.guruKelas','siswas.status'
        ,'siswas.fotoSiswa','siswas.alamat','siswas.noTelp','siswas.tempatLahir'
        ,'siswas.tanggalLahir','siswas.namaBapak','siswas.namaIbu')
        ->where("siswas.id",$id)
        ->first();
        return view ('siswa.show')->with('siswa',$data);
    }