laravel如何向经过身份验证的用户添加属性

时间:2014-06-29 09:14:08

标签: php laravel laravel-4 blade

身份验证表是admin表。其中一列是图片栏。这列只是为了保存图像的位置,因此它是varchar类型。

我有一个所有页面的主布局,我想在主布局中添加管理员的图像。

我是在控制器

中完成的
$user = Auth::user();
        $image_user_path= $user->picture;
        $image_user_extension = pathinfo($image_user_path, PATHINFO_EXTENSION);
        $image_user_data = file_get_contents($image_user_path);
        $user->base64 = 'data:image/' . $image_user_extension. ';base64,' .base64_encode($image_user_data);

请检查$user现在是否有base64属性

我在视图中执行了此操作

<img src="{{Auth::user()->base64}}"/>

完美无缺

但是,属性是我必须在每个控制器中添加代码,无论如何,我可以将它添加到一个地方,就是这样吗?

在我的脑海中,我可以想到BaseController可能在那里?

1 个答案:

答案 0 :(得分:2)

在用户模型上创建一个方法,然后在视图中调用该函数,例如

public function imageUrl() {
    $image_user_path = $this->picture;
    $image_user_extension = pathinfo($image_user_path, PATHINFO_EXTENSION);
    $image_user_data = file_get_contents($image_user_path);
    return 'data:image/' . $image_user_extension. ';base64,' .base64_encode($image_user_data);
}

然后,在您看来:

<img src="{{ Auth::user()->imageUrl() }}">