扩展包模型

时间:2015-05-19 14:21:14

标签: php laravel-4 models extends extending-classes

我已经安装了Cmgmyr \ Messenger,但是,由于我的用户表不包含name字段,因此我需要扩展Thread模型以及其他几个模型。

我需要扩展的方法是:

/**
     * Generates a string of participant information
     *
     * @param null $userId
     * @param array $columns
     * @return string
     */
    public function participantsString($userId=null, $columns=['name'])
    {
        $selectString = $this->createSelectString($columns);

        $participantNames = $this->getConnection()->table('users')
            ->join('participants', 'users.id', '=', 'participants.user_id')
            ->where('participants.thread_id', $this->id)
            ->select($this->getConnection()->raw($selectString));

        if ($userId !== null) {
            $participantNames->where('users.id', '!=', $userId);
        }

        $userNames = $participantNames->lists('users.name');

        return implode(', ', $userNames);
    }

请注意被调用的users.name字段?这需要更改为用户名甚至更好的users.firstname和users.lastname。

我需要将它扩展到以下结构:

Modules/
 - Email/
   - Models/
    - Thread.php

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

最简单的方法是在github上分发包,自己更改包,然后在composer(而不是原始包)上提取自定义包。

通过这种方式,您可以控制对其他包的更改。

这里介绍了拉入叉子的具体方法: How to require a fork with composer