首页 > 解决方案 > 带有 User 和 Auth 的 Laravel 查询构建器

问题描述

如何列出我的数据库中的表(议程)中的所有行,其中记录由连接的用户保存。我正在使用 Laravel 的默认身份验证。

public function index ($id = null)

    {
        $agendas = Agenda::where('id', Auth::user()->id)->get();
        $users = User::all();
        return view('admin.agendas.index', compact('agendas','users','id'));
    }

我的控制器在这里。需要帮忙

标签: laravelquery-builder

解决方案


假设

  • 议程表(包含议程模型的记录)有一个user_id引用id用户表上的列的列
  • 用户有很多议程
  • 议程属于用户

class User extends Model
{
    public function agendas()
    {
        return $this->hasMany(Agenda::class);
    }

    //... rest of class code
}


class Agenda extends Model
{
    public function user()
    {
        return $this->belongsTo(User::class);
    }

    //... rest of class code
}


public function index($id = null)
{

    $user = User::with('agendas')->findOrFail(auth()->id());

    return view('admin.agendas.index', [
        'user' => $user,
        'agendas' => $user->agendas,
        'id' => $id
    ]);
}

推荐阅读