Php 如何在Laravel 5中扩展和修改供应商模型?
我正在使用Laravel 5应用程序中的一个包,我正在使用数据库存储要阻止的IP地址列表 我已经成功安装了它,并且能够使用它附带的Php 如何在Laravel 5中扩展和修改供应商模型?,php,laravel,laravel-5,Php,Laravel,Laravel 5,我正在使用Laravel 5应用程序中的一个包,我正在使用数据库存储要阻止的IP地址列表 我已经成功安装了它,并且能够使用它附带的PragmaRX\Firewall\Vendor\Laravel\Models\Firewall模型 我遇到的问题是,我使用的是一个多租户数据库,其中基本上每个租户都有自己的数据库,这些租户的模型使用$connection属性指定租户连接,在幕后我根据请求更改租户连接配置 现在,软件包附带的模型如下所示: <?php namespace PragmaRX\Fir
PragmaRX\Firewall\Vendor\Laravel\Models\Firewall
模型
我遇到的问题是,我使用的是一个多租户数据库,其中基本上每个租户都有自己的数据库,这些租户的模型使用$connection
属性指定租户
连接,在幕后我根据请求更改租户连接配置
现在,软件包附带的模型如下所示:
<?php namespace PragmaRX\Firewall\Vendor\Laravel\Models;
/**
* Part of the Firewall package.
*
* NOTICE OF LICENSE
*
* Licensed under the 3-clause BSD License.
*
* This source file is subject to the 3-clause BSD License that is
* bundled with this package in the LICENSE file. It is also available at
* the following URL: http://www.opensource.org/licenses/BSD-3-Clause
*
* @package Firewall
* @author Antonio Carlos Ribeiro @ PragmaRX
* @license BSD License (3-clause)
* @copyright (c) 2013, PragmaRX
* @link http://pragmarx.com
*/
use Illuminate\Database\Eloquent\Model as Eloquent;
class Firewall extends Eloquent {
protected $table = 'firewall';
protected $guarded = array();
}
编辑供应商文件是一个坏主意。如果您出于某种原因必须编辑它们,我建议您对包进行分叉,并在分叉版本中进行编辑,然后更新composer文件以从您自己的分叉中提取包。但我不建议在这种情况下这样做 相反,您应该发布包配置文件并更改它应该使用的模型。
这是通过在终端中使用
artisan供应商:publish
命令来完成的。应在您的
config
文件夹中创建防火墙软件包的新配置文件。然后,您只需创建自己的模型并更改配置文件中的
firewall\u model
属性:
谢谢您的帮助。更新了我的问题,以反映我试图做什么以及为什么它不起作用。有什么想法吗?