私ははLaravelで非オブジェクトのプロパティを取得しようとすると5
ErrorException取得しています:私はすべてを表示しようとしている
非オブジェクトのプロパティを取得しようとするとをこの関数を使用してリンクされている関係。関係は - >
- カードは多くのメモを持つことができます、ノートは1枚のカードしか持っていません。 - 各ノートには1人のユーザーのみが含まれ、1人のユーザーには1つのカードのみが含まれます。私のコードは次のとおりです。
モデル
注
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); } }
コントローラ
CardsController
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(); } }
DB
1. notes table
$カード状>負荷( 'notes.user'); - 私はちょうどcardControllers
機能に(ノート)を入れると、カードとノートテーブルからリンクしているすべてのデータが表示されます。 - しかし、私は(notes.user)を追加しようとすると、それは非プロパティオブジェクトを取得しようとしていると言いました。何か不足していますか?
「notes.users」を試してください。 – t9toqwerty
[参考 - PHPでこのエラーが意味することは何ですか?](http://stackoverflow.com/questions/12769982/reference-what-this-error-mean-in-php) – Ohgodwhy
また、取得されたコレクションが空であるかどうかを最初に確認するにはhttps://laravel.com/api/5.3/Illuminate/Database/Eloquent/Collection.html#method_isEmpty – t9toqwerty