Php 如何在laravel中使用provinceid打印省名?

Php 如何在laravel中使用provinceid打印省名?,php,mysql,laravel-5,Php,Mysql,Laravel 5,我正在使用laravel 5.6开发应用程序 在我的应用程序中,我有三个表作为省、区、镇,这些模型具有以下关系: Province public function districts() { return $this->hasMany(District::class); } District public function province() { return $this->belongsTo(Province

我正在使用laravel 5.6开发应用程序

在我的应用程序中,我有三个表作为省、区、镇,这些模型具有以下关系:

Province
    public function districts()
    {
        return $this->hasMany(District::class);
    }

District
    public function province()
    {
       return $this->belongsTo(Province::class);
    }

Town
    public function district()
    {
        return $this->belongsTo(District::class);
    }
现在我在
Controller
中使用eager loder抓取数据:

$town_list = Town::with('district.province')->groupBy('provinceid')->get();
以及
blade
文件中的下拉选择输入

<div class="form-group">
            <label for="exampleFormControlSelect1">Province</label>
        <select name="province_id" id="province_id" class="form-control input dynamic" data-dependent="district_id" >
            <option value="">Select Province</option>
            @foreach($town_list as $town)
            <option value="{{$town->provinceid}}">{{$town->provinceid}}</option>
            @endforeach
        </select>
        </div>

首先,您可以从您的
Town
表中删除该
province\u id
。城镇地区为您提供所需的省id(
$town->District->province\u id
$town->District->province->id

此外,要打印省名,您可以链接您的关系。如前所述,您可以使用
$town->district->province->name
获得它

<option value="{{$town->district->province->id}}">{{$town->district->province->name}}</option>
{{$town->district->province->name}
在试图获取非对象的属性时发生此错误msg
->groupBy('provinceid')
这是有效的吗?似乎没有任何列的名称为
provinceid
。另外,你能给我发一条完全错误的消息吗?检测问题可能更有帮助。完整错误消息试图获取218536a4e8b355ff34185defd1fcb8465089362a.php中非对象的属性(视图:C:\Users\banda\Desktop\dgtr\resources\views\cars\carform.blade.php)。php第26行我的第26行是{{$town->district->provincename']}
{$town district->provincename}
{{$town->district->province->name}。
<option value="{{$town->district->province->id}}">{{$town->district->province->name}}</option>