Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 管理员和普通用户的Laravel传递值_Php_Laravel - Fatal编程技术网

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;