在这里感谢大家的帮助。我是新手,我想知道我是怎么出错的,这样我就可以改进了。
因此,我尝试从db搜索中获取输出,使用compact将其从控制器传递,然后将其传递给自定义刀片帮助器。
当我传递db详细信息时,我得到了一个所说的用户id的值,这个值可以用
@foreach($SelectUser as $key => $UserArray)
{{$UserArray->user_id}}
@endforeach我将获得预期的用户id的输出,例如1
当我尝试将其与我的helper结合以将中的值更改为可读的用户名时,它不会为helper类输出一个值以将其转换为可读的用户名。
@foreach($selectUseras $key => $UserArray)
@FindUsername($UserArray->user_id)
@endforeach帮助器类是
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;
});
}发布于 2017-08-28 02:08:01
Blade指令应该返回的不是实际值,而是一些php代码。您应该将指令更改为:
//Filter through array results
$i = implode(" ",$arr);
// return php-code which echo'es you value
return "<?php echo $i;?>";发布于 2017-08-28 03:20:22
您需要打印值,而不是返回。当刀片文件被编译并且刀片指令被解析时,它将只像php文件那样显示打印值,
ex的
:在php文件中,如果写$i = 1;,那么在浏览器编译的时候不会显示,只有在
echo $i的时候才会显示;
所以你需要把这个退掉
return "<?php echo $i;?>";不要忘记运行
php artisan view:clear,您需要在更新指令之前清除已编译的视图。
https://stackoverflow.com/questions/45907877
复制相似问题