Đã giải quyết - Cố gắng lấy thuộc tính của không phải đối tượng - Laravel

Solved Trying Get Property Non Object Laravel



Vấn đề

Tôi đang cố gắng lặp lại tên của người dùng trong bài viết của mình và tôi nhận được ErrorException: Trying to get property of non-object . Mã của tôi:

Mô hình

1. Tin tức







lớpTin tứcmở rộngNgười mẫu
{
công cộng hàm sốGửi bởi()
{
trở lại $ cái này->thuộc về('Ứng dụng Người dùng');
}
được bảo vệ $ table = 'Tin tức';
được bảo vệ $ có thể lấp đầy = ['newsContent', 'newsTitle', 'Gửi bởi'];
}

2. Người dùng



lớpNgười sử dụngmở rộngNgười mẫudụng cụAuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract
{
sử dụngXác thực,Có thể ủy quyền,CanResetPassword;

được bảo vệ $ table = 'người dùng';

được bảo vệ $ có thể lấp đầy = ['Tên', 'e-mail', 'mật khẩu mở khóa'];

được bảo vệ $ ẩn = ['mật khẩu mở khóa', 'memory_token'];

}

Bộ điều khiển

công cộng hàm sốshowArticle($ slug)
{
$ bài báo =Tin tức::ở đâu('slug', $ slug)->firstOrFail();
trở lạiquan điểm('bài báo', gọn nhẹ ('bài báo'));
}

Lưỡi

{{ $ bài báo->Gửi bởi->Tên }}

Khi tôi cố gắng xóa tên trong lưỡi dao {{ $article->postedBy }} nó xuất ra dấu id , nhưng khi tôi cố gắng thêm -> vào đó, nó cho biết Trying to get property of non-object nhưng tôi có tên trường trong bảng của mình và dấu User người mẫu. Tui bỏ lỡ điều gì vậy?



Dung dịch

Truy vấn của bạn có trả về mảng hay đối tượng không? Nếu bạn loại bỏ nó, bạn có thể thấy rằng đó là một mảng và tất cả những gì bạn cần là quyền truy cập mảng ([]) thay vì quyền truy cập đối tượng (->).





Ýkiếnthứhai

$ bài báo->poster->Tên

đến

$ bài báo->poster['Tên']

Tiếp theo là thêm một tham số thứ hai trong Thuộc tính của tôi, từ



trở lại $ cái này->thuộc về('Ứng dụng Người dùng');

đến

trở lại $ cái này->thuộc về('Ứng dụng Người dùng', 'tên người dùng');

trong đó user_id là khóa ngoại của tôi trong bảng tin tức.