Postingan lainnya
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>
0
Tanggapan
errornya pada baris mana
di bagian "<td>{{ $n->barang->namabarang }}</td>"
1 Jawaban:
Jawaban Terpilih
<div>Artinya property namabarang tidak tersedia.<br>Coba dd($ambahbarang) <br>pastikan property yang kamu mau semuanya ada disana</div>
0
Tanggapan
Terimakasih pak, ternyata di tabel "tambahbarang" pada field "barang_id" ada yang null, jadinya ngga bisa ditampilkan.