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->namake
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.