如何从服务提供商内部更改Laravel容器属性?

时间:2018-12-10 06:44:19

标签: php laravel

Laravel像这样将pathis绑定到Container中

$this->instance('path.lang', $this->langPath());   

在/vendor/laravel/framework/src/Illuminate/Foundation/Application.php中的bindPathsInContainer()中,我想将此路径从服务提供商内部更改为其他路径。

我知道可以通过$ this-> app从服务提供商内部访问容器实例,所以以为我可以做到

$this->app->instance('path.lang', 'my/path');

这将返回“类实例不存在”。谁能解释这是怎么回事? 另外,为什么要引用容器的ANY属性,如

$this->app->someProperty

导致此错误?有没有办法从服务提供商内部编辑someProperty?注意:我知道这可以通过扩展\ Illuminate \ Foundation \ Application来完成,如here所述,但我希望这样做是不必触摸Laravel的默认文件。

1 个答案:

答案 0 :(得分:0)

我认为路径必须是绝对的:

from collections import Counter
def MC(a):
    return a.replace('**unknown**', Counter(a).most_common()[0][0])

df.Country = df.groupby('City').Country.apply(MC)
print(df)

#      City Country
# 0  Newyork     USA
# 1  Newyork     USA
# 2  Newyork     USA
# 3  Newyork     USA
# 4    delhi   india
# 5    delhi   india
# 6    delhi   india

您也可以在AppServiceProvider中进行尝试:

java –cp C:/somepath/bin; C:/somepath/lib/* org.testng.TestNG testng.xml