スクラッチからのLaravel:レコードの更新と熱心なロード で忙しい。私はタットに従いましたが、CardsControllerにユーザーデータを追加しようとするとこのエラーが発生します。どこかでカードユーザー関係のステップを見逃したと思いますが、ビデオを3回見ましたが、ユーザー、カード、メモのデータベースクエリはビデオと完全に一致しています。
おそらく移行によってユーザーテーブルを作成した後に実行する必要がある別のステップはありますか?
エラー
BadMethodCallException in Builder.php line 2345:
未定義のメソッドIlluminate\Database\Query\Builder :: user()の呼び出し
CardsControllerコード
<?php
namespace App\Http\Controllers;
use App\Card;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class CardsController extends Controller
{
public function index()
{
$cards = Card::all();
return view('cards.index', compact('cards'));
}
public function show(Card $card)
{
$card = Card::with('notes.user')->get();
return $card;
return view('cards.show', compact('card'));
}
}
note
モデルには、関連付けられているuser
の関係定義がありません。
次のようにNotes
モデルにリレーションシップを追加できるはずです。
public function user()
{
return $this->belongsTo(User::class);
}
そのビデオにはいくつかの問題があるので、私も同じ問題に遭遇しました。次のように、Noteモデルに関係を追加することができるはずです。
public function user()
{
//return $this->belongsTo(User::class);
return $this->belongsTo('App\User');
}
そして、このようなユーザーモデルでは:
public function notes()
{
return $this->hasMany(Note::class);
//return $this->belongsTo('App\Note');
}
お大事に !