亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我如何從Laravel的中間表(多對多關系)中獲取數據

我如何從Laravel的中間表(多對多關系)中獲取數據

PHP
aluckdog 2021-05-06 13:21:59
我想閱讀培訓師和課程表之間的中間表的內容,以便能夠為給定培訓師標記活動課程的書架,我該怎么辦?在這里,您可以查看培訓 師表http://prntscr.com/nhcrl4在這里您可以查看課程表 http://prntscr.com/nhcrvp在這里,您可以查看course_trainer(中級)表 http://prntscr.com/nhcsek我想到了使用三元,你建議我嗎?多謝這是表格<div class="container">  <div class="row">    <div class="col-lg-12">      <form class="form-group" action="{{route('trainers.update', $trainer->id)}}" method="post" enctype="multipart/form-data">          @csrf          @method('PUT')          <div class="form-group">            <label for="name">Nome</label>            <input type="text" class="form-control" name="name" value="{{$trainer->name}}">          </div>          <div class="form-group">            <label for="surname">Cognome</label>            <input type="text" class="form-control" name="surname" value="{{$trainer->surname}}">          </div>          <div class="form-group">            <label for="description">Descrizione</label>            <textarea class="form-control" name="description" rows="8" cols="80">{!! $trainer->description !!}</textarea>          </div>          @foreach ($courses as $course)            <div class="form-check form-check-inline mb-2">              <input name="course_id[]" class="form-check-input" type="checkbox" value="{{$course->id}}">              <label class="form-check-label" for="course_id">{{$course->name_course}}</label>            </div>          @endforeach          <div class="form-group">            <img src="{{asset('storage/'.$trainer->image)}}" alt="">          </div>這是控制器中的編輯功能public function edit($id)    {        $trainer = Trainer::find($id);        $courses = Course::all();        return view('trainers.edit', compact('trainer','courses'));    }這是控制器中的更新功能    public function update(Request $request, Trainer $trainer)    {      $data = $request->all();      $trainer->update($data);      $trainer->courses()->sync($data['course_id']);      return redirect()->route('trainers.admin');    }
查看完整描述

3 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

我在不改變模型的情況下解決了問題...就足夠了


          @foreach ($courses as $course)

            <div class="form-check form-check-inline mb-2">

              <input name="course_id[]" class="form-check-input" type="checkbox" value="{{$course->id}}" @foreach ($trainer->courses as $value)

                {{($course->id == $value->pivot->course_id) ? 'checked' : ''}}


              @endforeach>


              <label class="form-check-label" for="course_id">{{$course->name_course}}</label>


            </div>

          @endforeach


查看完整回答
反對 回復 2021-05-21
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

這是訓練師模型


<?php


namespace App;


use Illuminate\Database\Eloquent\Model;


class Trainer extends Model

{

    protected $fillable = ['name','surname','description','image'];


    public function courses(){

      return $this->belongsToMany(Course::class)->withTimestamps();

    }


}

這是課程模型


<?php


namespace App;


use Illuminate\Database\Eloquent\Model;


class Course extends Model

{

  protected $fillable = ['name_course','description_course','logo_course'];



  public function trainers(){

    return $this->belongsToMany(Trainer::class)->withTimestamps();

  }

}


查看完整回答
反對 回復 2021-05-21
?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

這是訓練師模型


public function courses(){

  return $this->belongsToMany('App\Course', 'course_trainer ', 'trainer_id', 'course_id')->withTimestamps();

}

這是課程模型


public function trainers(){

  return $this->belongsToMany('App\Trainer', 'course_trainer ', 'course_id', 'trainer_id')->withTimestamps();

}

belongsToMany() 方法4個參數,第一個是要鏈接的模型的位置,第二個是數據透視表的名稱,第三個是當前模型的外鍵,第四個是另一個模型的外鍵。


現在,您可以在表單中執行以下操作


<input name="course_id[]" class="form-check-input" type="checkbox" @if($course->pivot->trainer_id == $trainer->id) "checked='' " @endif value="{{$course->id}}">



查看完整回答
反對 回復 2021-05-21
  • 3 回答
  • 0 關注
  • 172 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號