Postingan lainnya
Tidak bisa menampikan data dari relasi tabel - Laravel 5.4
kak tanya cara menampilkan data dari relasi table lain gimana ya gan? di controller sudah saya buat seperti ini
$workers = Worker::with('result')->find($id);
if(!$workers){
return redirect()->route('karyawan.index')->with(['alert-info'=>'Halaman Tidak ditemukan']);
}
return view('admin.workers.show', compact('workers', 'result'));
untuk di view di buat seperti ini :
<table class="table table-responsive">
<tr>
<th>Tanggal Brgkt</th>
<th>Tanggal Pulang</th>
<th>Nama Instansi</th>
<th>Tujuan Kegiatan</th>
</tr>
@foreach ($workers as $data)
@php
// dd($data); die
@endphp
<tr>
<tbody>
{{-- <td>{{ $workers->result->tanggal_pulang}}</td> --}}
<td>{{ $workers }}</td>
<td>{{ $workers->nama }}</td>
</tbody>
</tr>
@endforeach
</table>
lalu mumcul seperti ini jika dijalankan
saya ingin menampilkan tanggal keberangkatan dengan coding seperti ini :
@foreach ($workers as $data)
@php
// dd($data); die
@endphp
<tr>
<tbody>
<td>{{ $data->result->tanggal_pulang}}</td>
<td>{{ $workers }}</td>
<td>{{ $workers->nama }}</td>
</tbody>
</tr>
@endforeach
tapi terjadi eror seperti berikut: https://imgur.com/a/jgk5FtK mohon solusinya kak
14 Jawaban:
di model Worker udah dibuat relasinya blom untuk resultnya?
di model worker.php sudah saya buat seperti ini kak @bosque <pre> public function result() { return $this->hasMany('App\Result'); } </pre> mohon solusinya kak?
di check dulu, kalo menggunakan ORM apakah tabel peNamaan sudah sesuai (plural) cek : simple konsep relasi laravel <a href=' https://imgur.com/BlexCge '> https://imgur.com/BlexCge </a>
untuk tabel penamaan sudah sesuai kak, karna sebelumnya untuk ditampilan yang table satunya (result) yang ada foreign key sudah bisa tampil. hnya saja di table worker ini data yang ada relasinya ndak mau tampil. saya debug untuk variabel $data dengan codingan seperti ini <pre> @foreach ($workers as $data) @php
dd($data); die
@endphp </pre> , dan tampilan nya seperti berikut : <img src=' https://imgur.com/a/NUuTHjt '> dengan keterangan "true" tsb seperti di gambar , namun ketika yang saya debug di variabel $workers dengan codingan berikut :
<pre> @foreach ($workers as $data) @php
dd($workers); die
@endphp </pre>
dan tampilannya sudah muncul data result sebagai berikut : <img src=' https://imgur.com/a/NMMfauB '> kalau sperti itu gimana kak? @andanirizwan
Halo gan, pada controller ada dikit kesalahan klo menurut ane
<pre> $workers = Worker::with('result')->find($id); if(!$workers){ return redirect()->route('karyawan.index')->with(['alert-info'=>'Halaman Tidak ditemukan']); } return view('admin.workers.show', compact('workers', 'result')); </pre> compact result dari mana? sedangkan yang ada hanya $workers.
Trus untuk untuk modelnya:
<pre> // Model worker (sudah benar menurut ane) public function result() { return $this->hasMany('App\Result'); } // pada model result apakah sdh dibuat? public function worker() { return $this->belongsTo(Worker::class) } </pre>
Smoga bisa membantu gan.
Klw boleh tau ini yang ingin di looping result nya ya? Klw iya bagian ini sebaiknya diubah : <pre> @foreach ($workers as $data) @php // dd($data); die @endphp <tr> <tbody> <td>{{ $workers->result->tanggal_pulang}}</td> <td>{{ $workers }}</td> <td>{{ $workers->nama }}</td> </tbody> </tr> @endforeach </pre> Jadi seperti ini: <pre> @foreach ($workers->result as $data) @php // dd($data); die @endphp <tr> <tbody> <td>{{ $data->tanggal_pulang}}</td> <td>{{ $workers }}</td> <td>{{ $workers->nama }}</td> </tbody> </tr> @endforeach </pre>
oke kak terimakasih atas solusinya @devio , sudah bisa tampil kak datanya. boleh tanya lagi kakak" disini untuk menampilkan data nama instansi di worker tersebut , sedangkan relasi diperoleh dari table result yang berelasi dengan instance(instansi), itu bagaimana ya kak? ditampilan view jika saya debug seperti ini kak <img src=' https://imgur.com/a/DKN5qYk '> , untuk tampilan jika tidak di debug seperti ini kak <img src=' https://imgur.com/a/Atki1vt '>, untuk coding view seperti ini kak : <pre> <table class="table table-responsive"> <tr> <th>Tanggal Brgkt</th> <th>Tanggal Pulang</th> <th>Nama Instansi</th> <th>Tujuan Kegiatan</th> <th>Puskesmas</th> </tr>
@foreach ($workers-&gt;result as $data)
&lt;tr&gt;
&lt;tbody&gt;
@php
// dd($data); die();
@endphp
&lt;td&gt;{{$data-&gt;tanggal_berangkat}}&lt;/td&gt;
&lt;td&gt;{{$data-&gt;tanggal_pulang}}&lt;/td&gt;
&lt;td&gt;{{$data-&gt;hasil}}&lt;/td&gt;
&lt;td&gt;{{$data-&gt;catatan}}&lt;/td&gt;
&lt;td&gt;{{$data-&gt;instance_id}}&lt;/td&gt;
&lt;/tbody&gt;
&lt;/tr&gt;
@endforeach
&lt;/table&gt; </pre>.
untuk relasi di masing" model seperti ini kak , model result <pre> class Result extends Model { // protected $guarded =[]; public $timestamps = false;
//relasi ke instansi
public function instances()
{
return $this-&gt;belongsTo('App\Instance','instance_id');
}
//relasi tujuan
public function purposes(){
return $this-&gt;belongsTo('App\Purpose','purpose_id');
}
//relasi worker
public function worker(){
return $this-&gt;belongsTo('App\Worker','worker_id');
}
// many to many
public function results(){
return $this-&gt;belongsToMany('App\Result')-&gt;withPivot('result_id', 'worker_id');
} </pre>
model worker : <pre> <?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Worker extends Model { public function result() { return $this->hasMany('App\Result'); }
public function results() { return $this->belongToMany('App\Result','result_worker'); } } </pre>. model instansi : <pre> <?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Instance extends Model { protected $guarded = []; public $timestamps = false;
public function result() { return $this->hasMany('App\Result'); }
} </pre> kemudian saya ingin menampilkan nama puskesmasnya kak, kalau disini hanya tampil id_puskesmasnya kak, itu bagaimana ya kak? mohon pencerahannya lagi kak
@yenimulya tbl instance itu puskesmas ya? Tbl instance ini berhubungan dengan tbl result?
Klw iya di model Result.php tambahkan ini:
<pre>
public function instance()
{
return $this->hasOne('App\Instance');
}
</pre>
nah nanti di view bladenya tinggal ditambahkan sedikit seperti ini:
<pre>
<td>{{$data->instance->nama }}</td>
</pre>
di atas nama kolomnya disesuaikan ya saya pakai "nama" untuk kolom nama di tbl Instance
iya kak @devio tabel instance itu puskesmas, tabel instance berelasi dengan tabel result , jadi didalam tabel result terdapat foreign key instance_id, sudah saya tambahkan pada model result nya kak , di view blade sudah saya tambahkan kodinganya seperti ini <pre> <td>{{$data->instance->nama}}</td> </pre> tapi pas saya jalankan eror seperti ini kak <img src=' https://imgur.com/a/82WLv3a '> atau modelnya keliru ya kak?
Wah malah error yah. Klw di model Result.php nya diubah jadi gini: <pre> public function instance() { return $this->belongsTo("App\Instance", 'instance_id'); } </pre>
bisa kak @devio , hanya saja ketika saya ingin menampilkan nama instansi di view worker itu tidak bisa tampil nama instansi, hanya berupa id instansi, karena susunan di table worker itu ada id, nama karyawan , telepon , result_id . sedangkan di table result itu berupa id, hasil, catatan, tanggal berangkat, tanggal pulang, worker_id, purpose_id, status . begitu kak atau di controller harus ditambahkan codingan lain ? mohon solusinya kak
klw di table instance nya kolomnya apa aja? seharusnya sih klw model yg saya kasih tau di atas sudah gk error berarti bisa. Tinggal di view bladenya aja. Atau ada error setelah ganti instance di model Result.php ??? coba dd $data->instance di dalam foreachnya ya.
kalau instance berisi id, nama , kode, catatan . saya dd $data->instance nya dengan coding berikut <pre> @foreach ($workers->result as $data)
&lt;tr&gt;
&lt;tbody&gt;
@php
dd($data-&gt;instance); die();
@endphp
&lt;td&gt;{{$data-&gt;tanggal_berangkat}}&lt;/td&gt;
&lt;td&gt;{{$data-&gt;tanggal_pulang}}&lt;/td&gt;
&lt;td&gt;{{$data-&gt;hasil}}&lt;/td&gt;
&lt;td&gt;{{$data-&gt;catatan}}&lt;/td&gt;
&lt;td&gt;{{$data-&gt;instance_id}}&lt;/td&gt;
&lt;/tbody&gt;
&lt;/tr&gt;
@endforeach </pre>hasilnya null kak atau seperti berikut <img src=' https://imgur.com/a/n2kGCzj '> . tetapi jika saya debug dd $data maka sudah tampil instance_id nya kak seperti berikut <img src=' https://imgur.com/a/TU7SlDD '> .
atau controller saya seperti ini kliru kak @devio ? <pre> public function show($id , Request $request) { // $nama = $request->get('telepon2'); $workers = \App\Worker::pluck('nama', 'id');
$instances = \App\Instance::pluck('nama', 'id');
$purposes = \App\Purpose::pluck('nama', 'id');
$workers = Worker::with('result')-&gt;find($id);
if(!$workers){
return redirect()-&gt;route('karyawan.index')-&gt;with(['alert-info'=&gt;'Halaman Tidak ditemukan']);
}
return view('admin.workers.show', compact('workers'));
}
</pre>
sudah bisa kak @devio terimakasih solusinya kemarin