Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
(error) memunculkan relasi one to many laravel
Trying to get property 'nama' of non-object (View:
index.blade {{$produk->kategoriproduk->nama}}
model Kategoriproduk public function produks() { return $this->hasMany('App\Produk', 'id'); }
model Produk public function kategoriproduk() { return $this->belongsTo('App\Kategoriproduk', 'id'); }
migrasi table produk Schema::create('produks', function (Blueprint $table) { $table->bigIncrements('id'); $table->unsignedBigInteger('kategoriproduk_id'); $table->foreign('kategoriproduk_id') ->references('id') ->on('kategoriproduks') ->onDelete('cascade');
migrasi table kategoriproduk Schema::create('kategoriproduks', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('nama'); $table->string('slug')->unique(); $table->timestamps(); });
Gimana ini gan kadang bisa kadang error apa ada yang kurang atau gimana ya
3 Jawaban:
parameter 'id' di relasi nya buat apa yaa gan ?
index.blade
<pre> <td> {{ !is_null($produk->kategoriproduk) ? $produk->kategoriproduk->nama : null }} </td> </pre>
Karena hasilnya bukan object akan tetapi array. Seharusnya di loop.
<pre> @foreach($produk->kategoriproduk as $kategori) <td>{{$kategori]->nama}}</td> @endforeach </pre>
kenapa begitu? karena produk has many kategoriproduk, sehingga ketika di get hasilnya array of object.
seperti ini: <pre> [ { "name": "Pakaian" }, { "name": "Elektronik" } ] </pre>