フォロワーデータLaravel5.8およびEloquentにアクセスする

carlstrom96

フォロワー用のベーステーブルを設定していて、フォロワーモデルにはユーザーモデルとの関係があります。ユーザーモデルには、フォロワーモデルとbelongsToManyの関係があります。フォロワーテーブルには「id、follower_id、leader_id」があります

ユーザーモデルを介してフォロワーテーブルにアクセスしようとしていますが、アクセスできません。私は何か間違ったことをしているに違いありませんが、私は以前にEloquentの関係を扱ったことがあり、そのときは常にそれを機能させてきました。誰かが以下のコードスニペットを見て、何が悪いのかを指摘できますか?

ユーザーモデル

 public function followers(){
        return $this->belongsToMany(User::class, 'followers', 'leader_id', 'follower_id')->withTimestamps();
    }

    public function followings(){
        return $this->belongsToMany(User::class, 'followers', 'follower_id', 'leader_id')->withTimestamps();

フォロワーモデル

protected $table = 'followers';
    public $primaryKey = 'id';
    public $timestamps = true;

    public function user(){
        $this->belongsTo('App\User');
    }

FollowerController

Old controller for old relationship
// public function followUser($id){
    //     $user = User::find($id);

    //     if(!$user){
    //         return redirect()->back()->with('error', 'User does not exist.');
    //     }

    //     $user->followers()->attach(auth()->user()->id);

    //     return redirect()->back()->with('success', 'You now follow the user!');
    // }


//New controller
    public function followUser($id){
        $user = User::find($id);
        if(!$user){
            return redirect()->back()->with('error', 'User does not exist.');
            }

            $follow = new Follower;
            $follow->follower_id = Auth::user()->id;
            $follow->leader_id = $user;

            $follow->save();
            return redirect()->back()->with('success', 'You now follow the user!');

    }

UserController

 // This is a test function
    public function index($id){
        $userid = Auth::user();
        $user = User::find($id)->followers;
        $recipe = Recipe::find(5);
        $savedRecipes = Save::where('user_id', '=', $userid);

        return view('welcome')->with('recipe', $recipe)->with('user', $user)->with('savedRecipes', $savedRecipes);

    }

テストビュー

 <div class="content">
                <div class="title m-b-md">
                    Welcome to the TestLab: {{$user->followers->follower_id}}
                    <br>

これにより、「このインスタンスにプロパティが見つかりません」というエラーがスローされます。すべての名前空間はすべて順番に並んでいるので、それも問題ではありません。ここでの問題は何ですか?

ピアッツィ

あなたが持っている場合は一対多のユーザーとフォロワーとの関係をフォロワーには、ユーザー、ユーザーに属している場合は、あなたの関係の間違った定義のhasManyフォロワー:

 public function followers(){
        return $this->hasMany('App\Follower','user_id');
 }

ドキュメントを見てください

あなたのコントローラー:

public function index($id){
     $user = User::find($id);
     return view('welcome')->with('user', $user);
}

foreachループを使用して、ユーザーから各フォロワーにアクセスできます。

@foreach($user->followers as $follower)
    {{$follower->anyAttributeFromTheFollower}}
@endforeach

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Laravel5フォームリクエストデータの事前操作

分類Dev

フォームなしでlaravel5コントローラー内のデータベースに手動でデータを挿入します

分類Dev

Laravel5のログデータを別のファイルに

分類Dev

デフォルトのLaravel5認証クラスを拡張して、ユーザーを削除および更新できる管理インターフェースを提供するにはどうすればよいですか?

分類Dev

laravel5はコントローラーでデフォルト言語を取得します

分類Dev

AndroidでMulipleネットワークインターフェースにアクセスする方法(WiFiおよびモバイルデータ)

分類Dev

Laravel5データベースに存在するアップデート

分類Dev

Laravel5でファイルにアップロードされた属性にアクセスする

分類Dev

画像をアップロードしてlaravel5にアクセスする

分類Dev

ReactJS:送信および変更時に非常に単純なフォーム入力値にアクセスする

分類Dev

変更方法/ Laravel4およびLaravel5ユーザー認証のカスタムパスワードフィールド名

分類Dev

Laravel5のサブフォルダーのコントローラーにルーティングする

分類Dev

ローカル環境からステージングデータベースに接続する-Laravel5

分類Dev

パスワードなしでLaravel5ログイン

分類Dev

フォームの送信中に<ul>および<li>にアクセスすることはできません

分類Dev

Nodejsが外部ユーザーおよび内部プロセスからルートにアクセスする

分類Dev

データベースの関係に1対1および1対多でアクセスする

分類Dev

XAMPPデータベースでLaravel5を使用する

分類Dev

ファイルを別のディレクトリにアップロードするlaravel5

分類Dev

異なるアレイのLaravel5フォーム検証

分類Dev

langフォルダーにLaravel5の新しいカスタムメッセージ

分類Dev

オーバーロード->および*:初期クラスにアクセスする方法は?

分類Dev

laravel5データをコントローラーに渡してモデル化する方法

分類Dev

laravel5のメールのデフォルトの「From」フィールドを変更する

分類Dev

著者名およびその他のdocxメタデータにアクセスする方法

分類Dev

Laravel5コントローラーでデータベース名を変更する

分類Dev

Laravel5のどこにフォーラムを置くか

分類Dev

Laravel5パラメーターを使用したフォームリクエストの検証

分類Dev

Laravel5フォームモデルバインディングチェックボックス値

Related 関連記事

  1. 1

    Laravel5フォームリクエストデータの事前操作

  2. 2

    フォームなしでlaravel5コントローラー内のデータベースに手動でデータを挿入します

  3. 3

    Laravel5のログデータを別のファイルに

  4. 4

    デフォルトのLaravel5認証クラスを拡張して、ユーザーを削除および更新できる管理インターフェースを提供するにはどうすればよいですか?

  5. 5

    laravel5はコントローラーでデフォルト言語を取得します

  6. 6

    AndroidでMulipleネットワークインターフェースにアクセスする方法(WiFiおよびモバイルデータ)

  7. 7

    Laravel5データベースに存在するアップデート

  8. 8

    Laravel5でファイルにアップロードされた属性にアクセスする

  9. 9

    画像をアップロードしてlaravel5にアクセスする

  10. 10

    ReactJS:送信および変更時に非常に単純なフォーム入力値にアクセスする

  11. 11

    変更方法/ Laravel4およびLaravel5ユーザー認証のカスタムパスワードフィールド名

  12. 12

    Laravel5のサブフォルダーのコントローラーにルーティングする

  13. 13

    ローカル環境からステージングデータベースに接続する-Laravel5

  14. 14

    パスワードなしでLaravel5ログイン

  15. 15

    フォームの送信中に<ul>および<li>にアクセスすることはできません

  16. 16

    Nodejsが外部ユーザーおよび内部プロセスからルートにアクセスする

  17. 17

    データベースの関係に1対1および1対多でアクセスする

  18. 18

    XAMPPデータベースでLaravel5を使用する

  19. 19

    ファイルを別のディレクトリにアップロードするlaravel5

  20. 20

    異なるアレイのLaravel5フォーム検証

  21. 21

    langフォルダーにLaravel5の新しいカスタムメッセージ

  22. 22

    オーバーロード->および*:初期クラスにアクセスする方法は?

  23. 23

    laravel5データをコントローラーに渡してモデル化する方法

  24. 24

    laravel5のメールのデフォルトの「From」フィールドを変更する

  25. 25

    著者名およびその他のdocxメタデータにアクセスする方法

  26. 26

    Laravel5コントローラーでデータベース名を変更する

  27. 27

    Laravel5のどこにフォーラムを置くか

  28. 28

    Laravel5パラメーターを使用したフォームリクエストの検証

  29. 29

    Laravel5フォームモデルバインディングチェックボックス値

ホットタグ

アーカイブ