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

avatar yenimulya
@yenimulya

50 Kontribusi 2 Poin

Diperbarui 5 tahun yang lalu

14 Jawaban:

di model Worker udah dibuat relasinya blom untuk resultnya?

avatar bosque
@bosque

187 Kontribusi 104 Poin

Dipost 5 tahun yang lalu

di model worker.php sudah saya buat seperti ini kak @bosque <pre> public function result() { return $this-&gt;hasMany('App\Result'); } </pre> mohon solusinya kak?

avatar yenimulya
@yenimulya

50 Kontribusi 2 Poin

Dipost 5 tahun yang lalu

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>

avatar andanirizwan
@andanirizwan

16 Kontribusi 2 Poin

Dipost 5 tahun yang lalu

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 &lt;/pre&gt; , dan tampilan nya seperti berikut : &lt;img src=&#039; https://imgur.com/a/NUuTHjt &#039;&gt; dengan keterangan &quot;true&quot; 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 &lt;/pre&gt;

dan tampilannya sudah muncul data result sebagai berikut : <img src=' https://imgur.com/a/NMMfauB '> kalau sperti itu gimana kak? @andanirizwan

avatar yenimulya
@yenimulya

50 Kontribusi 2 Poin

Dipost 5 tahun yang lalu

Halo gan, pada controller ada dikit kesalahan klo menurut ane

<pre> $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', '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-&gt;hasMany('App\Result'); } // pada model result apakah sdh dibuat? public function worker() { return $this-&gt;belongsTo(Worker::class) } </pre>

Smoga bisa membantu gan.

avatar zergz
@zergz

62 Kontribusi 47 Poin

Dipost 5 tahun yang lalu

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 &lt;tr&gt; &lt;tbody&gt; &lt;td&gt;{{ $workers-&gt;result-&gt;tanggal_pulang}}&lt;/td&gt; &lt;td&gt;{{ $workers }}&lt;/td&gt; &lt;td&gt;{{ $workers-&gt;nama }}&lt;/td&gt; &lt;/tbody&gt; &lt;/tr&gt; @endforeach </pre> Jadi seperti ini: <pre> @foreach ($workers-&gt;result as $data) @php // dd($data); die @endphp &lt;tr&gt; &lt;tbody&gt; &lt;td&gt;{{ $data-&gt;tanggal_pulang}}&lt;/td&gt; &lt;td&gt;{{ $workers }}&lt;/td&gt; &lt;td&gt;{{ $workers-&gt;nama }}&lt;/td&gt; &lt;/tbody&gt; &lt;/tr&gt; @endforeach </pre>

avatar devio
@devio

101 Kontribusi 46 Poin

Dipost 5 tahun yang lalu

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> &lt;table class="table table-responsive"&gt; &lt;tr&gt; &lt;th&gt;Tanggal Brgkt&lt;/th&gt; &lt;th&gt;Tanggal Pulang&lt;/th&gt; &lt;th&gt;Nama Instansi&lt;/th&gt; &lt;th&gt;Tujuan Kegiatan&lt;/th&gt; &lt;th&gt;Puskesmas&lt;/th&gt; &lt;/tr&gt;

					@foreach ($workers-&amp;gt;result as $data) 
					

						
					&amp;lt;tr&amp;gt;
						&amp;lt;tbody&amp;gt;
							@php
								// dd($data); die();
							@endphp
							&amp;lt;td&amp;gt;{{$data-&amp;gt;tanggal_berangkat}}&amp;lt;/td&amp;gt;
							&amp;lt;td&amp;gt;{{$data-&amp;gt;tanggal_pulang}}&amp;lt;/td&amp;gt;
							&amp;lt;td&amp;gt;{{$data-&amp;gt;hasil}}&amp;lt;/td&amp;gt;
							&amp;lt;td&amp;gt;{{$data-&amp;gt;catatan}}&amp;lt;/td&amp;gt;
							&amp;lt;td&amp;gt;{{$data-&amp;gt;instance_id}}&amp;lt;/td&amp;gt;
						
							
						&amp;lt;/tbody&amp;gt;
					&amp;lt;/tr&amp;gt;
					@endforeach
					
				&amp;lt;/table&amp;gt;  &lt;/pre&gt;.

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-&amp;gt;belongsTo(&#039;App\Instance&#039;,&#039;instance_id&#039;);
}
//relasi tujuan
public function purposes(){
    return $this-&amp;gt;belongsTo(&#039;App\Purpose&#039;,&#039;purpose_id&#039;);
}
//relasi worker
public function worker(){
    return $this-&amp;gt;belongsTo(&#039;App\Worker&#039;,&#039;worker_id&#039;);
}
// many to many 
public function results(){
	return $this-&amp;gt;belongsToMany(&#039;App\Result&#039;)-&amp;gt;withPivot(&#039;result_id&#039;, &#039;worker_id&#039;);

} &lt;/pre&gt;

model worker : <pre> &lt;?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Worker extends Model { public function result() { return $this-&gt;hasMany('App\Result'); }

public function results() { return $this-&gt;belongToMany('App\Result','result_worker'); } } </pre>. model instansi : <pre> &lt;?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Instance extends Model { protected $guarded = []; public $timestamps = false;

public function result() { return $this-&gt;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

avatar yenimulya
@yenimulya

50 Kontribusi 2 Poin

Dipost 5 tahun yang lalu

@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-&gt;hasOne('App\Instance'); } </pre> nah nanti di view bladenya tinggal ditambahkan sedikit seperti ini: <pre>
&lt;td&gt;{{$data-&gt;instance-&gt;nama }}&lt;/td&gt; </pre> di atas nama kolomnya disesuaikan ya saya pakai "nama" untuk kolom nama di tbl Instance

avatar devio
@devio

101 Kontribusi 46 Poin

Dipost 5 tahun yang lalu

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> &lt;td&gt;{{$data-&gt;instance-&gt;nama}}&lt;/td&gt; </pre> tapi pas saya jalankan eror seperti ini kak <img src=' https://imgur.com/a/82WLv3a '> atau modelnya keliru ya kak?

avatar yenimulya
@yenimulya

50 Kontribusi 2 Poin

Dipost 5 tahun yang lalu

Wah malah error yah. Klw di model Result.php nya diubah jadi gini: <pre> public function instance() { return $this-&gt;belongsTo("App\Instance", 'instance_id'); } </pre>

avatar devio
@devio

101 Kontribusi 46 Poin

Dipost 5 tahun yang lalu

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

avatar yenimulya
@yenimulya

50 Kontribusi 2 Poin

Dipost 5 tahun yang lalu

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.

avatar devio
@devio

101 Kontribusi 46 Poin

Dipost 5 tahun yang lalu

kalau instance berisi id, nama , kode, catatan . saya dd $data-&gt;instance nya dengan coding berikut <pre> @foreach ($workers-&gt;result as $data)

					&amp;lt;tr&amp;gt;
						&amp;lt;tbody&amp;gt;
							@php
								dd($data-&amp;gt;instance); die();
							@endphp
							&amp;lt;td&amp;gt;{{$data-&amp;gt;tanggal_berangkat}}&amp;lt;/td&amp;gt;
							&amp;lt;td&amp;gt;{{$data-&amp;gt;tanggal_pulang}}&amp;lt;/td&amp;gt;
							&amp;lt;td&amp;gt;{{$data-&amp;gt;hasil}}&amp;lt;/td&amp;gt;
							&amp;lt;td&amp;gt;{{$data-&amp;gt;catatan}}&amp;lt;/td&amp;gt;
							&amp;lt;td&amp;gt;{{$data-&amp;gt;instance_id}}&amp;lt;/td&amp;gt;
							
							
						&amp;lt;/tbody&amp;gt;
					&amp;lt;/tr&amp;gt;
					@endforeach &lt;/pre&gt;hasilnya null kak atau seperti berikut &lt;img src=&#039; https://imgur.com/a/n2kGCzj &#039;&gt; . tetapi jika saya debug dd $data maka sudah tampil instance_id nya kak seperti berikut &lt;img src=&#039; https://imgur.com/a/TU7SlDD &#039;&gt; . 

atau controller saya seperti ini kliru kak @devio ? <pre> public function show($id , Request $request) { // $nama = $request-&gt;get('telepon2'); $workers = \App\Worker::pluck('nama', 'id');

    $instances = \App\Instance::pluck(&#039;nama&#039;, &#039;id&#039;);
    $purposes = \App\Purpose::pluck(&#039;nama&#039;, &#039;id&#039;);     

    
    $workers = Worker::with(&#039;result&#039;)-&amp;gt;find($id);

   
    if(!$workers){
        return redirect()-&amp;gt;route(&#039;karyawan.index&#039;)-&amp;gt;with([&#039;alert-info&#039;=&amp;gt;&#039;Halaman Tidak ditemukan&#039;]);
    }
    return view(&#039;admin.workers.show&#039;, compact(&#039;workers&#039;));
}

</pre>

avatar yenimulya
@yenimulya

50 Kontribusi 2 Poin

Dipost 5 tahun yang lalu

sudah bisa kak @devio terimakasih solusinya kemarin

avatar yenimulya
@yenimulya

50 Kontribusi 2 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban