Dipecahkan – Mencoba mendapatkan properti non-objek – Laravel

Solved Trying Get Property Non Object Laravel



Masalah

Saya mencoba mengulangi nama pengguna di artikel saya dan saya mendapatkan |_+_|. Kode saya:

Model

1. Berita







kelasBeritameluasModel
{
publik fungsiDiposting oleh()
{
kembali $ini->Milik('AplikasiPengguna');
}
terlindung $tabel = 'berita';
terlindung $bisa diisi = ['beritaKonten', 'Judul Berita', 'Diposting oleh'];
}

2. Pengguna



kelasPenggunameluasModelmengimplementasikanKontrak yang Dapat Diautentikasi,
Kontrak yang Dapat Diotorisasi,
CanResetPasswordContract
{
menggunakanDapat diautentikasi,Dapat diotorisasi,Dapat Menyetel Ulang Kata Sandi;

terlindung $tabel = 'pengguna';

terlindung $bisa diisi = ['nama', 'surel', 'kata sandi'];

terlindung $tersembunyi = ['kata sandi', 'remember_token'];

}

Pengontrol

publik fungsitampilkanArtikel($siput)
{
$artikel =Berita::di mana('siput', $siput)->pertamaAtauGagal();
kembalimelihat('artikel', kompak ('artikel'));
}

Pedang

{{ $artikel->Diposting oleh->nama }}

Saat saya mencoba menghapus nama di bilah |_+_| itu menampilkan |_+_|, tetapi ketika saya mencoba menambahkan ->nama di sana tertulis |_+_| tetapi saya memiliki nama bidang di tabel saya dan |_+_| model. Apakah saya melewatkan sesuatu?



Larutan

Apakah kueri Anda mengembalikan array atau objek? Jika Anda membuangnya, Anda mungkin menemukan bahwa itu adalah array dan yang Anda butuhkan hanyalah akses array ([]) alih-alih akses objek (->).





Pendapat kedua

$artikel->poster->nama

ke

$artikel->poster['nama']

Selanjutnya adalah menambahkan parameter kedua di milik saya, dari



kembali $ini->Milik('AplikasiPengguna');

ke

kembali $ini->Milik('AplikasiPengguna', 'identitas pengguna');

di mana |_+_| adalah kunci asing saya di tabel berita.