แก้ไขแล้ว – พยายามรับทรัพย์สินที่ไม่ใช่วัตถุ – Laravel

Solved Trying Get Property Non Object Laravel



ปัญหา

ฉันกำลังพยายามสะท้อนชื่อของผู้ใช้ในบทความของฉันและฉันได้รับ |_+_| รหัสของฉัน:

โมเดล

1. ข่าว







ระดับข่าวยืดออกแบบอย่าง
{
สาธารณะ การทำงานโพสโดย()
{
กลับ $นี้->เป็นของ('แอพผู้ใช้');
}
มีการป้องกัน $table = 'ข่าว';
มีการป้องกัน $fillable = ['เนื้อหาข่าว', 'ชื่อข่าว', 'โพสโดย'];
}

2. ผู้ใช้



ระดับผู้ใช้ยืดออกแบบอย่างดำเนินการAuthenticatableContract,
สัญญาอนุญาต,
CanResetPasswordContract
{
ใช้ตรวจสอบได้,ได้รับอนุญาต,รีเซ็ตรหัสผ่านได้;

มีการป้องกัน $table = 'ผู้ใช้';

มีการป้องกัน $fillable = ['ชื่อ', 'อีเมล', 'รหัสผ่าน'];

มีการป้องกัน $hidden = ['รหัสผ่าน', 'remember_token'];

}

คอนโทรลเลอร์

สาธารณะ การทำงานแสดงบทความ($slug)
{
$บทความ =ข่าว::ที่ไหน('กระสุน', $slug)->firstOrFail();
กลับดู('บทความ', กะทัดรัด ('บทความ'));
}

ใบมีด

{{ $บทความ->โพสโดย->ชื่อ }}

เมื่อฉันพยายามลบชื่อในเบลด |_+_| มันส่งออก |_+_| แต่เมื่อฉันพยายามเพิ่ม ->name จะมีข้อความว่า |_+_| แต่ฉันมีชื่อเขตข้อมูลในตารางของฉันและ |_+_| แบบอย่าง. ฉันพลาดอะไรไปรึเปล่า?



สารละลาย

แบบสอบถามของคุณส่งคืนอาร์เรย์หรือวัตถุหรือไม่ หากคุณดัมพ์ออก คุณอาจพบว่ามันคืออาร์เรย์ และสิ่งที่คุณต้องมีคือการเข้าถึงอาร์เรย์ ([]) แทนการเข้าถึงอ็อบเจ็กต์ (->)





ความคิดเห็นที่สอง

$บทความ->โปสเตอร์->ชื่อ

ถึง

$บทความ->โปสเตอร์['ชื่อ']

ถัดไปคือการเพิ่มพารามิเตอร์ตัวที่สองใน my ownsTo จาก



กลับ $นี้->เป็นของ('แอพผู้ใช้');

ถึง

กลับ $นี้->เป็นของ('แอพผู้ใช้', 'รหัสผู้ใช้');

โดยที่ |_+_| คือคีย์ต่างประเทศของฉันในตารางข่าว