【问题标题】:Laravel: (Session?) Pass value from admin side to userLaravel:(会话?)将值从管理员端传递给用户
【发布时间】:2017-05-30 00:41:21
【问题描述】:

我在 admin.blade 页面中有一个名为“goal”的值,可以由登录的管理员更改。我希望能够在用户页面 (user.blade) 上传递该新值。 (没有注册用户,只有普通用户访问该页面)。目前,我能够在管理页面上反映更改,但我无法将值传递给用户页面(可能是因为身份验证)。我尝试了不同的方法,但无法得到我想要的。以下是我更改“目标”值时更新它的函数:

public function changeGoal(Request $data){

auth()->user()->update([
            'goal' => $data->input('newGoal')

        ]);

        return redirect('/adminpage');
}

使用此功能,当我输入 {{$goal}} 时,它会在管理页面中显示更改的值(对于已登录的管理员)。所以,现在,管理员可以更改值并查看新的值价值。

我希望管理员更改的值显示在用户页面中 (用户.刀片)。我怎样才能做到这一点?

有人建议我使用 session,但它不起作用,或者我做错了什么(即使我尝试从 laravel 文档中做到这一点,但无法真正正确地弄清楚)。 帮助将不胜感激。谢谢

【问题讨论】:

    标签: php laravel updates


    【解决方案1】:

    不要将goal 附加到您的User 模型。也许你可以创建一个SiteData 模型,它有一个goal 属性。然后在您的user.blade.php 文件中,您可以通过以下方式检索goal

    {{ SiteData::first()->goal }}
    

    并且让管理员更新它:

    SiteData::first()->update(['goal' => 1000]);
    

    希望有帮助!

    【讨论】:

    • 尝试使用composer Service Provider user.blade 共享一些值/变量
    • @Fahmi 我有三个模型用户(意思是管理员)、捐赠者(普通用户)和视频。但是,我在数据库中没有“目标”字段的列。还是我误解了你所说的?如果我创建一个 SiteData 模型,其中应该包含什么?
    • @ReiahPaulSam 我以前看过它,但不明白如何为我的案例实施它。如果你能提供一个基于我的案例的例子,那就太好了
    • 会话仅在您的浏览器中工作,您无法通过,例如如果他们正在使用另一台计算机或浏览器。一种方法是在您的数据库中有一个公用表来传递数据。
    • @Demonowh 所以,我创建了一个新表,让我们说'tablegoal'。它将包含名为目标的列。我想它还需要包含来自用户表(管理员)和捐助者表(普通用户)的 id 以使其成为一个公用表?我将如何更改我的代码?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    相关资源
    最近更新 更多