Php 管理员和普通用户的Laravel传递值
我有一个网站,管理员可以注册自己。目前只有一个管理员,因此下面的函数用于传递值:Php 管理员和普通用户的Laravel传递值,php,laravel,Php,Laravel,我有一个网站,管理员可以注册自己。目前只有一个管理员,因此下面的函数用于传递值: public function getAllVideos() { $videos = Video::all(); $price = DB::table('donor')->sum('amount_donated'); $goal = auth()->user()->goal; return view('adminmanagement', compact('vide
public function getAllVideos()
{
$videos = Video::all();
$price = DB::table('donor')->sum('amount_donated');
$goal = auth()->user()->goal;
return view('adminmanagement', compact('videos', 'price', 'goal'));
}
public function changeGoal(Request $data)
{
auth()->user()->update([
'goal' => $data->input('newGoal')
]);
return redirect('/home');
}
如果我需要把它传递给一个普通用户可以看到的视图,
我是否执行以下操作?
User::first()->目标代码>
但是,如果系统中有多个注册用户(管理员),该怎么办。如果一次只登录一个管理员,那还可以吗?还是代码需要更改
编辑:
我只为管理员(即“用户”)注册,普通用户(在我的情况下为“捐赠者”)不需要任何注册/日志记录。因此,我的主要目的是能够将$goal值传递到两个不同的页面。一个可以访问admin(比如一个注册并登录的名为jon的admin),另一个可以访问普通用户。因此,我当前的代码“User::first()->goal;”你应该做这个把戏,对吗?但是,如果让我们假设,另一个名为jim的管理员注册并登录,那就好了。因此,现在登录的管理员是jim,而不是jon。它仍然会在管理员的查看页面(由jim访问)和普通用户的查看页面(由普通/随机人访问)中显示$goal值。通过auth()->user()
检索用户或auth::user()
(我更喜欢第二种方式)只返回当前登录的用户
如果你写:
Auth::user()->username
它将向所有查看此页面的用户显示他们自己的名称
不用担心:)
但是,User::first()
将获得users
表中的第一条记录,因此它将始终是同一个用户,并且可能是一个普通用户。在这种情况下,可以将auth()->user()
替换为user::first()
。但是,如果您有多个管理员或用户,则需要使用用户id使用user::find(1)
指定用户。每个用户都有一个目标字段,我假设您只想从管理员用户获取具有实际值的目标。如果是这样,你可以这样做
替换
$goal = auth()->user()->goal;
与
确保将用户的用户id与目标值一起使用。请检查我在问题中的编辑,因为我在回答中说,user::first()
将仅检索表的第一条记录。这意味着您将始终从不同页面检索相同的目标事件。您应该存储或传递一个id为想要的管理员用户的参数。请检查我刚才添加的编辑部分,并告诉我您的答案是否仍然与之匹配。ThanksU可以有多个管理员,但您需要只使用一个管理员用户存储目标值,并使用它来显示。所以使用User::find(1)->目标
更安全,将1替换为要在其中存储目标的管理员用户id。老实说,正确的实现是为目标创建一个单独的表,并使用该表来存储或获取目标值,而不是与用户一起存储目标值。“user::find(1)->goal;”好吧,还是我应该创建一个新表?我可以创造一个,但是我不知道如何传递价值。另外,find(1)意味着从用户处获取第一个值,或者它是指id?它指的是用户id。如果它是一个简单的应用程序,那么您可以使用它。
return view('adminmanagement', compact('videos', 'price', 'goal'));
}
public function changeGoal(Request $data)
{
auth()->user()->update([
'goal' => $data->input('newGoal')
]);
return redirect('/normalview');
}
$goal = auth()->user()->goal;
$goal = User::find(1)->goal;