首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel - Array输出问题

Laravel - Array输出问题
EN

Stack Overflow用户
提问于 2017-08-28 02:05:19
回答 2查看 55关注 0票数 2

在这里感谢大家的帮助。我是新手,我想知道我是怎么出错的,这样我就可以改进了。

因此,我尝试从db搜索中获取输出,使用compact将其从控制器传递,然后将其传递给自定义刀片帮助器。

当我传递db详细信息时,我得到了一个所说的用户id的值,这个值可以用

代码语言:javascript
复制
                    @foreach($SelectUser as $key => $UserArray)

                         {{$UserArray->user_id}}

                     @endforeach

我将获得预期的用户id的输出,例如1

当我尝试将其与我的helper结合以将中的值更改为可读的用户名时,它不会为helper类输出一个值以将其转换为可读的用户名。

代码语言:javascript
复制
                        @foreach($selectUseras $key => $UserArray)

                         @FindUsername($UserArray->user_id)

                     @endforeach

帮助器类是

代码语言:javascript
复制
    public function boot()
{

    //A Helper to translate a user id number in to a readable username 

    Blade::directive('FindUsername', function ($id) {

        // Request infomation from the db useing eloquent
        $username = User::where('id', $id)
                    ->pluck('username');

        //Results to an array
        $arr = $username->toArray();

        //Filter through array results
        $i = implode(" ",$arr);

        return $i;

    });

}
EN

回答 2

Stack Overflow用户

发布于 2017-08-28 02:08:01

Blade指令应该返回的不是实际值,而是一些php代码。您应该将指令更改为:

代码语言:javascript
复制
//Filter through array results
$i = implode(" ",$arr);

// return php-code which echo'es you value
return "<?php echo $i;?>";
票数 1
EN

Stack Overflow用户

发布于 2017-08-28 03:20:22

您需要打印值,而不是返回。当刀片文件被编译并且刀片指令被解析时,它将只像php文件那样显示打印值,

ex的

:在php文件中,如果写$i = 1;,那么在浏览器编译的时候不会显示,只有在echo $i的时候才会显示;

所以你需要把这个退掉

代码语言:javascript
复制
return "<?php echo $i;?>";

不要忘记运行php artisan view:clear,您需要在更新指令之前清除已编译的视图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45907877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档