为什么在这种情况下不应该静态调用erro非静态方法?

时间:2018-06-01 23:36:04

标签: laravel

我尝试使用此软件包“dannyvankooten / laravel-vat”加载包含国家/地区的选择菜单,然后验证输入类型文本中插入的增值税号。

所以我有一个表格:

<div class="form-group font-size-sm">
    <select class="form-control" name="country" id="country">
        @foreach($countries as $country)
            <option value="{{$country}}">{{$country}}</option>
        @endforeach
    </select>
</div>
<div class="form-group font-size-sm">
    <label for="vat" class="text-gray">VAT</label>
    <input type="text" id="vat" name="vat" class="form-control" value="">
</div>

在RegistrationController我有一个方法,它将$ countries返回到选择菜单的视图:

$countries = Countries::all();

但似乎:

Non-static method DvK\Laravel\Vat\Countries::all() should not be called statically

你知道为什么吗?

2 个答案:

答案 0 :(得分:1)

all不是Countries类中的静态方法。您应首先创建Countries的实例,然后调用其all方法:

$countries = new Countries();
$allCountries = $countries->all();

return view('congress.registration', ['countries' => $allCountries]);

答案 1 :(得分:1)

在您的特定情况下(laravel&amp; facades),这是因为您在控制器中导入了错误的类。

您需要替换

sudo

[***** ~]$ yum install gcc
/usr/bin/python: : ELF: zR: Error 18446744071568268661

[***** ~]$ sudo yum install gcc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
....

如自述@ https://github.com/dannyvankooten/laravel-vat

中所示

外观提供静态访问器,例如use DvK\Laravel\Vat\Countries;