【问题标题】:Retrive the json value in laravel view在 laravel 视图中检索 json 值
【发布时间】:2014-08-23 08:10:43
【问题描述】:

在控制器中,我正在从数据库中检索特定模型。

$user = UserModel::find($id);

如果我这样做var_dump($user),我会得到以下信息:

protected 'attributes' => 
array (size=14)
  'id' => int 1
  'email' => string 'superadmin@admin.com' (length=20)
  'password' => string '$2y$10$/T5qdWHjuXikhk14WqqwwuS7POmrOzmGzePkEapaiP4cPRZ3GLv9i' (length=60)
  'permissions' => string '{"superuser":1}' (length=15)
  'activated' => int 1
       .....
       .....

我正在将数据返回给视图

return View::make('users.modalPermissions', compact('user'));

在我看来,我可以像这样访问数据

{{$user->email}} //superadmin@admin.com
{{$user->permissions}} //{"superuser":1}

我关心的是{{$user->permissions}},因为现在我得到字符串{"superuser":1} 作为输出。在我看来如何访问它的key(superuser)value(1)

【问题讨论】:

    标签: php json laravel blade


    【解决方案1】:

    由于字符串是json使用;

    json_decode($user->permissions, true)['superuser'];
    

    访问超级用户信息。但我建议您在发送数据之前在控制器中完成所有这些操作,因此您可以执行以下操作而不是这样做;

    $user->permissions['superuser'];
    

    为此;

    $user->permissions = json_decode($user->permissions, true);
    

    这将在您返回与用户数据一起返回的视图之前进入您的控制器。

    然后在您的视图中,您可以调用以下内容;

    $user->permissions['superuser']
    

    【讨论】:

    • 你也需要引号json_decode($user->permissions)['superuser']。请注意,此语法仅适用于 PHP 5.4 及更高版本。
    • 我已经尝试了这两种方法,但它们都不起作用。 json_decode($user->permissions)['superuser'];给出“不能使用 stdClass 类型的对象作为数组”和 $user->permissions['superuser'];给出非法字符串偏移“超级用户”。我使用的是 PHP 5.4+ 版本。
    • 是的,这行得通。但这似乎是一个有点丑陋的解决方案。你从控制器建议的那个怎么样?
    • 现在我可以在我的视图中以 {{$user->permissions['superuser']}} 的形式访问该值。谢谢。
    猜你喜欢
    • 2013-10-07
    • 2017-05-24
    • 2016-01-24
    • 2018-06-21
    • 2018-04-01
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多