Selesaikan - Mencuba mendapatkan harta benda bukan objek - Laravel

Solved Trying Get Property Non Object Laravel



Masalah

Saya cuba menyebut nama pengguna dalam artikel saya dan saya mendapat ErrorException: Trying to get property of non-object . Kod saya:

Model

1. Berita







kelasBeritamemanjangModel
{
awam fungsidisiarkan oleh()
{
kembali $ ini->kepunyaan('Aplikasi Pengguna');
}
dilindungi $ meja = 'berita';
dilindungi $ boleh diisi = ['kandungan berita', 'beritaTitle', 'diposkan oleh'];
}

2. Pengguna



kelasPenggunamemanjangModelmelaksanakanKontrak Authenticatable,
Kontrak yang Dibolehkan,
BolehResetPasswordContract
{
menggunakanBoleh disahkan,Dibolehkan,CanResetPassword;

dilindungi $ meja = 'pengguna';

dilindungi $ boleh diisi = ['nama', 'e-mel', 'kata laluan'];

dilindungi $ disembunyikan = ['kata laluan', 'ingat_token'];

}

Pengawal

awam fungsipertunjukan Artikel($ slug)
{
artikel $ =Berita::di mana('slug', $ slug)->pertamaOrFail();
kembalipandangan('artikel', padat ('artikel'));
}

Bilah

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

Semasa saya cuba mengeluarkan nama di bilah {{ $article->postedBy }} ia mengeluarkan id , tetapi ketika saya mencuba untuk menambahkan nama -> di sana ia mengatakan Trying to get property of non-object tetapi saya mempunyai nama medan dalam jadual saya dan User model. Adakah saya kehilangan sesuatu?



Penyelesaian

Adakah pertanyaan anda mengembalikan array atau objek? Sekiranya anda membuangnya, anda mungkin mendapati bahawa itu adalah array dan semua yang anda perlukan adalah akses array ([]) dan bukannya akses objek (->).





Pendapat kedua

artikel $->poster->nama

ke

artikel $->poster['nama']

Seterusnya ialah menambahkan parameter kedua dalam milik saya, dari



kembali $ ini->kepunyaan('Aplikasi Pengguna');

ke

kembali $ ini->kepunyaan('Aplikasi Pengguna', 'ID Pengguna');

di mana user_id adalah kunci asing saya dalam jadual berita.