Laravel 带有用户和授权的查询生成器
Laravel query builder with the User and Auth
如何在我的数据库中列出来自 table(议程)的所有行,其中记录由连接的 user.I 使用来自 Laravel.[=12 的默认身份验证保存=]
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'));
}
我的控制器在这里。
需要帮助
假设
- 议程 table(包含议程模型的记录)有一列
user_id
,它引用了用户 table 的 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
]);
}
您的 User
模型应该有一个关系:
public function agendas()
{
return $this->hasMany(Agenda::class);
}
在您的控制器中,您可以这样简化使用:
public function index (Request $request, $id = null)
{
$agendas = $request->user()->agendas;
$users = User::all();
return view('admin.agendas.index', compact('agendas','users','id'));
}
如果您想获得与另一个数据相关的数据,您必须通过字段将这些 table 连接在一起。在这种情况下,我猜你在 Agenda table 中有一个名为 'user_id'.
的专栏
你有两种方式:
- 在您的模型中加入 tables。
- 在您的控制器中的议程 table 中搜索
如果您想使用来自模型的 tables 加入:
// in App\User.php
...
class User ...{
...
public function Agenda(){
return $this->hasMany(Agenda::class);
}
...
}
...
然后您就可以像这样从任何地方访问所有“议程”:
Auth()->user()->agenda
如果你想从你的控制器中搜索 table,你可以这样做:
Agenda::where('id', Auth::user()->id)
您可以阅读更多关于 eloquent-关系的信息:https://laravel.com/docs/8.x/eloquent-relationships
如何在我的数据库中列出来自 table(议程)的所有行,其中记录由连接的 user.I 使用来自 Laravel.[=12 的默认身份验证保存=]
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'));
}
我的控制器在这里。 需要帮助
假设
- 议程 table(包含议程模型的记录)有一列
user_id
,它引用了用户 table 的 - 用户有很多日程
- 议程属于用户
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
]);
}
您的 User
模型应该有一个关系:
public function agendas()
{
return $this->hasMany(Agenda::class);
}
在您的控制器中,您可以这样简化使用:
public function index (Request $request, $id = null)
{
$agendas = $request->user()->agendas;
$users = User::all();
return view('admin.agendas.index', compact('agendas','users','id'));
}
如果您想获得与另一个数据相关的数据,您必须通过字段将这些 table 连接在一起。在这种情况下,我猜你在 Agenda table 中有一个名为 'user_id'.
的专栏你有两种方式:
- 在您的模型中加入 tables。
- 在您的控制器中的议程 table 中搜索
如果您想使用来自模型的 tables 加入:
// in App\User.php
...
class User ...{
...
public function Agenda(){
return $this->hasMany(Agenda::class);
}
...
}
...
然后您就可以像这样从任何地方访问所有“议程”:
Auth()->user()->agenda
如果你想从你的控制器中搜索 table,你可以这样做:
Agenda::where('id', Auth::user()->id)
您可以阅读更多关于 eloquent-关系的信息:https://laravel.com/docs/8.x/eloquent-relationships