【问题标题】:Extending a package model扩展包模型
【发布时间】:2015-05-19 14:21:14
【问题描述】:

我已经安装了 Cmgmyr\Messenger,但是,由于我的 users 表不包含 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 文件被调用了吗?这是需要更改为 username 甚至更好的 users.firstname 和 users.lastname 一起。

我需要将其扩展为以下结构:

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

我该怎么办?

【问题讨论】:

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


    【解决方案1】:

    最简单的方法是在 github 上 fork 包,自己对包进行更改,然后在 composer 上拉入您的自定义包(而不是原始包)。

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

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

    【讨论】:

    • @TheRabbitFactory - 这回答了你的问题吗?您需要更多信息吗?
    猜你喜欢
    • 2019-03-17
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    相关资源
    最近更新 更多