Method Illuminate \ Database \ Eloquent \ Collection :: hasAnyUnit不存在

问题描述 投票:1回答:1

我想显示数据库中的检查状态,当我在视图上添加{{ $mod->hasAnyUnit($unit->kd_unit)?'checked':'' }}时出现错误

我有单位表,如角色表:

-------------------
id | kd_unit | name
-------------------
1  | 01      | A
2  | 02      | B
2  | 03      | C
-------------------

第二个是rs表,就像一个用户表:

-------------------
id | kd_rs| name
-------------------
1  | 01   | ASD
2  | 02   | ZXC
-------------------

第三个是mod表,就像一个角色用户:

-------------------
id | kd_rs| kd_unit
-------------------
1  | 01   | 01
2  | 01   | 02
3  | 01   | 03
-------------------

我的模型表中的模型:

class TManagerOnDuty extends Model
{
    public function units() {
        return $this->belongsToMany('App\Unit', 'kd_unit', 'kd_unit');
    }

    public function hasAnyUnits($units) {
        return null !== $this->units()->whereIn('kd_unit', $units)->first();
    }

    public function hasAnyUnit($unit) {
        return null !== $this->units()->where('kd_unit', $unit)->first();
    }
}

我的控制器:

class ManagerOnDutyController extends Controller
{
  public function edit($kd_rs)
    {
        $units = Unit::orderBy('nm_unit', 'asc')->where('is_active', true)->get();
        $mod = TManagerOnDuty::where('kd_rs', $kd_rs)->get(); 
        return view('layouts.manageronduty.edit')->with([
            'mod'   => $mod,
            'units' => $units,
            'kd_rs' => $kd_rs
        ]);
    }
}  

我的看法:

@foreach($units as $unit)
    <div class="custom-control custom-checkbox mb-3">
        <input name="unitRS[]" value="{{$unit->kd_unit}}" {{ $mod->hasAnyUnit($unit->kd_unit)?'checked':'' }} id="customCheck{{$unit->kd_unit}}" class="custom-control-input" type="checkbox">
        <label class="custom-control-label" for="customCheck{{$unit->kd_unit}}">{{$unit->nm_unit}}</label>
    </div>
@endforeach

我的错误:enter image description here

我的期望:enter image description here

php laravel laravel-5.8
1个回答
1
投票

尝试这个

$mod = TManagerOnDuty::where('kd_rs', $kd_rs)->first();

在您的控制器中,作为get返回该对象的集合,您无法从该集合中调用您的hasAnyUnit(),因此首先从您的查询中调用一个对象,然后将其与hasAnyUnit()]链接起来>

© www.soinside.com 2019 - 2024. All rights reserved.