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.