laravel 4.2模型变异器

时间:2015-08-12 15:51:29

标签: php laravel

我正在制作通知系统。我目前遇到的问题是,所有通知都是非个人的。

我想要的是保存到具有正确个性化语言的数据库的通知,例如,我目前有一个通知,如下所示,

  

Joe Bloggs将比利乔尔添加为项目经理。

我希望通知每个不是Billy Joel的通知,但对于Billy Joel,我想要发送以下内容

  

Joe Bloggs将您添加为项目经理

目前,我为透视表同步的项目经理保存了这样的通知,

$notification = new Notification;
    $notification->withURI($organisation->slug);
    $notification->withIsNotification(1);
    $notification->regarding($organisation);
    $notification->user_id = ResourceServer::getOwnerId();
    $notification->withType('updated');
    //die(print_r($changes));
    foreach($changes['attached'] as $k => $v) {
        //Loop through each new attachment to the pivot
        //look for who the attachement is from the user table and then
        //add the final notification details and fire the deliver method
        $addedUser = User::find($v);
        $addedUserName = $addedUser->first_name . " " . $addedUser->last_name;
        $notification->withBody($notifcationSenderName . " added " . $addedUserName . " to the organisation " . $organisation->name);
        $notification->deliver($notifyUsers);
    }

我想知道当我通过它的模型从我的数据库中查询用户时,我是否能够使用模型mutators返回用户的第一个和第二个名称,如果不需要个人通知,如果它然后返回“你”。变异器有可能吗?如果可以的话怎么样?

1 个答案:

答案 0 :(得分:4)

虽然我不支持这种方法,但您确定可以在访问者中执行此操作:

public function getNameAttribute()
{
    if (Auth::id() == $this->id) return 'you';

    return "{$this->first_name} {$this->last_name}";
}