【问题标题】:Laravel put one value from the database in a sessionLaravel 将数据库中的一个值放入会话中
【发布时间】:2015-04-13 14:10:18
【问题描述】:

我对 Laravel 中的会话有疑问... 所以我想从数据库中选择一些值来通过会话显示用户图像。

这是我的 LoginController,所以当他们登录时,我会定义会话。

我正在使用的查询:

$users_images = DB::table('users')->select('user_image.img')->join('user_image','user_image.uid','=','users.id')->get();

现在,我希望查询是正确编写的,我想从表 'user_image' 中选择 'img',其中该表中的 'uid' 与表 'users' 中的 'id' 相同。 ..

现在.... 我将查询存储在会话中,输出存储在 var_dump();是正确的东西....

所以我存储在一个会话中...

Session::put('user_img', $users_images);

现在,没关系。 我在我看来请求会话。

{{ Session::get('user_img', 'none.png') }}

完整的请求是这样的:

<img style="max-width:33px;" src="{{ Config::get('app.url') }}/public/img/user_img/{{ Session::get('user_img', 'none.png') }}"/>

但这没关系,因为{{ Config::get('app.url') }} 一直有效。

我收到的错误是ErrorException (E_UNKNOWN) Array to string conversion 但是我怎样才能最好地解决这个错误呢?

亲切的问候,

罗宾

【问题讨论】:

    标签: php session laravel


    【解决方案1】:

    这是因为您的会话是一个数组,并且您正试图将其打印为字符串。

    要么循环遍历它:

    @foreach (Session::get('user_img') as $img) 
    
      <img style="max-width:33px;" src="{{ Config::get('app.url') }}/public/img/user_img/{{ $img }}"/>
    
    @endforeach
    

    或者你只记录一张:

    $users_images = DB::table('users')
    ->select('user_image.img')
    ->join('user_image','user_image.uid','=','users.id')
    ->first();
    

    【讨论】:

    • 如果我只取一个,我会收到此错误“stdClass 类的对象无法转换为字符串”
    • 是的,因为它返回一个对象。你应该做Session::get('user_images')-&gt;img
    【解决方案2】:

    我结合了单 ->first() 和循环,现在它可以工作了,非常感谢!

    【讨论】:

      猜你喜欢
      • 2019-04-24
      • 2015-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多