Cara mengatasi "Trying to get property "namabarang" of non-object" LARAVEL

Saya ingin relasi tabel "barang" ke tabel "tambahbarang", namun saat saya ingin menampilkan data dari tabel "barang" tiba-tiba error Trying to get property of non-object, adakah yang bisa membantu saya?

TambahbarangController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Tambahbarang;
use App\Barang;

class TambahbarangController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $tambahbarang = Tambahbarang::latest()->get();
        return view('tambahbarang.index', compact('tambahbarang'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $barangs = Barang::get();
        return view('tambahbarang.create', compact('barangs'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'barang_id'=>'required',
            'jumlah'=>'required',
        ]);

        $tambahbarang = Tambahbarang::create([
            'barang_id'=>$request->input('barang_id'),
            'jumlah'=>$request->input('jumlah')
        ]);
        return redirect('/barang')->with('success', 'stok barang telah ditambahkan');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit(Tambahbarang $tambahbarang)
    {
        $barangs = Barang::get();
        return view('tambahbarang.edit', compact('tambahbarang', 'barangs'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Tambahbarang $tambahbarang)
    {
        $request->validate([
            'barang_id'=>'required',
            'jumlah'=>'required',
        ]);

        $tambahbarang = Tambahbarang::whereId($tambahbarang->id)->update([
            'barang_id'=> $request->input('barang_id'),
            'jumlah'=> $request->input('jumlah')
        ]);

        return redirect('/tambahbarang')->with('success','Barang telah diubah');;
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy(Tambahbarang $tambahbarang)
    {
        $tambahbarang = Tambahbarang::find($tambahbarang->id);
        $tambahbarang -> delete();
        return redirect('/tambahbarang')->with('success', 'Barang telah dihapus');
    }
}

view tambahbarang.index

<div class="container">
    <div class="row">
        <div class="col-md-12">
            <h1 class="text-center" style="font-family: sans-serif;">PERSEDIAAN BARANG</h1>
            <p><a class="btn btn-primary" href="{{ route('tambahbarang.create') }}">Tambah barang</a></p>
            @if(session()->get('success'))
            <div class="alert alert-success">
             {{ session()->get('success') }}
            </div>
            @endif
            <p><a class="btn btn-primary" href="{{ route('barang.index') }}">HOME</a></p>
            <table class="table table-striped" style="font-family: sans-serif;">
                <thead>
                    <tr>
                        <th scope="col">ID</th>
                        <th scope="col">Pilih Barang</th>
                        <th scope="col">Jumlah Di Tambah</th>

                    </tr>
                </thead>
                <tbody>
                    @foreach($tambahbarang as $n)
                    <tr>
                        <td>{{ $n->id }}</td>
                        <td>{{ $n->barang->namabarang }}</td>
                        <td>{{ $n->jumlah}}</td>

                    </tr>
                    @endforeach
                </tbody>
            </table>
        </div>
    </div>
</div>
avatar chandsijabat
@chandsijabat

1 Kontribusi 0 Poin

Diperbarui 1 tahun yang lalu

Tanggapan

errornya pada baris mana

di bagian "{{ $n->barang->namabarang }}"

1 Jawaban:

Jawaban Terpilih

<div>Artinya property namabarang tidak tersedia.<br>Coba dd($ambahbarang)&nbsp;<br>pastikan property yang kamu mau semuanya ada disana</div>

avatar hilmanski
@hilmanski

2670 Kontribusi 2132 Poin

Dipost 1 tahun yang lalu

Tanggapan

Terimakasih pak, ternyata di tabel "tambahbarang" pada field "barang_id" ada yang null, jadinya ngga bisa ditampilkan.

Login untuk ikut Jawaban