Обновить данные из 3 или более таблиц из другой таблицы (Laravel)? - PullRequest
1 голос
/ 08 октября 2019

У меня есть 3 категории отношений таблицы, подгруппа и k3s, я хочу динамическое обновление с помощью select, но когда я обновляю категорию из подгруппы, данные на k3s не могут обновляться, я просто хочу обновить module_id для таблицы k3s из подгруппы? Любое предложение?

<div class="form-group" style="margin-right:50px; margin-left:50px;">
    <label for="category">Select Category</label>
    <select class="form-control form-control-sm" name="module_id">
        @foreach($data_category as $category)
            <option value="{{$category->module_id}}" @if ($category->module_id === $subgroup->module_id) selected @endif>
            {{$category->module_name}}
        </option>{{$category->module_name}}
        @endforeach
    </select>
</div>

Мой контроллер обновлений

public function update(Request $request, $id){
    $subgroup = \App\Subgroup::find($id);
    $subgroup->k3s()->where('module_id', $subgroup->module_id)->update(['module_id' => $request->input('module_id')]);
    $subgroup->update($request->all());
    if ($request->hasFile('subgroup_logo')) {
        $request->file('subgroup_logo')->move('uploads/subgroups/', $request->file('subgroup_logo')->getClientOriginalName());
        $subgroup->subgroup_logo =  'subgroups/' . $request->file('subgroup_logo')->getClientOriginalName();
        $subgroup->save();
    }
    return redirect()->back();
}

Модель

class Subgroup extends Model{
    protected $table = 'subgroup';
    public $timestamps = false;
    protected $primaryKey = 'subgroup_id';

    protected $fillable = ['subgroup_id', 'subgroup_name', 'subgroup_logo', 'module_id'];

    public function module(){
        return $this->belongsTo('App\Module' , 'module_id');
    }

    public function k3s(){
        return $this->hasMany('App\K3s' , 'K3s_id');
    }

    public function block(){
        return $this->hasMany('App\Block' , 'block_id');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...