【发布时间】:2016-11-30 04:36:58
【问题描述】:
我收到了
ErrorException: 试图获取非对象的属性
我正在尝试使用此功能显示所有链接关系。关系是->
-卡片可以有很多笔记,笔记只有一张卡片。 - 每个笔记只包含一个用户,用户只包含一张卡片。我的代码是:
型号
-
注意
class Note extends Model { protected $fillable = ['body']; public function cards() { return $this->belongsTo(Card::class); } public function users() { return $this->belongsTo(User::class,'id'); } } -
用户
class User extends Authenticatable { use Notifiable; public function note() { return $this->belongsTo(Note::class); } protected $fillable = [ 'name', 'email', 'password', ]; protected $hidden = [ 'password', 'remember_token', ]; } -
卡片
class Card extends Model { public function notes() { return $this->hasMany(Note::class);//relationship } public function addNote(Note $note) { return $this->notes()->save($note); } }
控制器
-
卡片控制器
class cardsController extends Controller { public function index() { $cards = Card::all(); return view('cards.index',compact('cards')); } public function show(Card $card) { $card->load('notes.user'); **The Error is here.** $return $card; return view('cards.show',compact('card')); }}
-
NotesController
class notesController extends Controller { public function store(Request $request, Card $card) { $card->addNote( new Note($request->all()) ); return back(); } public function edit(Note $note) { return view('notes.edit',compact('note')); } public function update(Request $request, Note $note) { $note -> update($request -> all()); return back(); } }
数据库
1。 notes table
$card->load('notes.user');
- 当我将(笔记)放入cardControllers 函数时,它将显示从卡片和笔记表链接的所有数据。
- 但是当我尝试添加(notes.user)时,它说试图获取非属性对象。我错过了什么吗?
【问题讨论】:
-
试试“notes.users”。
-
你也应该使用laravel.com/api/5.3/Illuminate/Database/Eloquent/…首先检查获取的集合是否为空。