视图中表的输出值

时间:2017-03-16 14:16:07

标签: php database laravel

我在Laravel遇到了问题。我把整张桌子从我的控制器那里传到了我的视线中:

$usersTable = DB::table('users')->get();
return view('users')->with('users', $usersTable);

在foreach循环中,我可以在我看来完美地得到这样的每个值:

        @foreach($users as $user => $value) 
            <div class="projectBox">
                <br><span class="projectBoxName">{{ $value->name }}</span>
                @php
                    echo Form::image('/images/edit.png', "",['class' => "editUserBtn", 'userId' => $value->id]);
                @endphp
                <br><span class="projectBoxSmallText projectBoxEmail">{{ $value->email }}</span>
                <br><span class="projectBoxSmallText projectBoxId">ID: {{ $value->id }}</span>
                <br><span class="projectBoxSmallText projectBoxProjects">Currently no projects</span>
            </div>
        @endforeach

但是我还需要在foreach循环之外访问这些值,我该怎么做?

   echo Form::text('email', "$users->$value->email", array('placeholder' => "Email"));

不工作......

这以这种形式给出了我的整个对象

[{"id":"1","name":"Administrator","email":"admin@mail.com","password":"$2y$10$Re3Ahf.SwU5vj4UvtU5Dy.jxaZMsUNC2WhuJMwsNy9gu6TST4PuRG","remember_token":null}]

如何只收到电子邮件?我也试过使用索引,但那些都没有用。 谢谢!

修改 完整情况: 我有一个用户列表及其额外信息(邮件,电话,...)。在那些用户框中有一个按钮,当我点击一个模态打开给出当前邮件和电话时,它会显示“编辑用户”。所以我不能在我的控制器中说WHO的mailaddress返回,因为我只知道用户点击客户端按钮的那一刻。 图片: http://imgur.com/a/krDrY (编辑按钮是带有三个点的小圆圈。)

4 个答案:

答案 0 :(得分:1)

要在不使用循环的情况下访问集合,您应该使用集合方法:

$users = User::get();
$users->where('name', 'John Smith')->first()->email

由于您已经预先加载了数据,因此不会创建任何其他查询。

如果您只想加载一个用户,请使用first()代替get()

$users = User::first();

如果您使用get(),然后[0]first(),就像有些人推荐的那样,您会将所有用户数据加载到内存中,因为每个请求都会使服务器超载

此外,使用索引访问数据(如$users[4]['email'])是一种不好的做法。如果可能,请避免使用它。

答案 1 :(得分:0)

您需要添加[0]

作为第一个元素添加
    echo Form::text('email', $users[0]->email, array('placeholder' => "Email"));

我建议使用->first()代替->get()来获取单个对象。并删除循环并在任何地方使用。

答案 2 :(得分:0)

您正在使用users的集合来获取第一位用户的电子邮件

$users->first()->email;

答案 3 :(得分:-2)

看起来它是以JSON身份进入的。尝试使用json_decode($data)$data->email来获取该属性。